2016-10-06 6 views
0

선택한 Ext.form.field.PickerView 항목의 색인을 어떻게 가져올 수 있습니까? 나는 그것을 사용하는 것을 시도하고있다 :선택한 Ext.form.field.PickerView 항목의 색인을 얻는 방법은 무엇입니까?

Ext.define('Bind.CL.FormD.view.MyCombo', { 
    extend: 'Ext.form.field.Picker', 
alias: 'widget.mycombo', 

...something code... 

this.on('expand', function() { 
      var combo = Ext.ComponentQuery.query('mycombo')[0]; 
      var value = combo.getValue(); //or getRawValue(); 
     }, this); 

을하지만 그것은 작동하지 않습니다 ..

답변

0
당신은 같이 IndexOf() 함수를 사용할 수

:
가 확인하시기 바랍니다 바이올린 : https://fiddle.sencha.com/#fiddle/1i0o

Ext.application({ 
name: 'Fiddle', 

launch: function() { 
    simpsonsStore = Ext.create('Ext.data.Store', { 
    storeId : 'simpsonsStore', 
    fields : ['id','name', 'email'], 
    data : [ 
     {name : 'Lisa',email : '[email protected]',id:1}, 
     {name : 'Bart', email : '[email protected]',id:2}, 
     {name : 'Homer', email : '[email protected]',id:3}, 
     {name : 'Marge',email : '[email protected]',id:4} 
    ] 
}); 

    Ext.create('Ext.form.field.ComboBox', { 
     emptyText: "Hello", 
     growMax: 10, 
     valueField: 'id', 
     store:simpsonsStore, 
     displayField: 'name', 
     editable: false, 
     queryMode: 'local', 
     renderTo: Ext.getBody(), 
     listeners:{ 
      change:function(combo){ 
       console.log(combo.store.indexOf((combo.store.getById(combo.value)))); 
      } 
     } 
    }); 
} 
}); 
+0

고맙습니다! :) 하지만 상점은 정의되지 않았습니다. 왜? ( https://i.imgsafe.org/5f6d80b3c7.png – ruslanen

+0

바이올린을 확인하십시오 –

+0

대단히 감사합니다. – ruslanen

0

내 솔루션 :

this.on('expand', function() { 
     var combo = Ext.ComponentQuery.query('mycombo')[0], 
      value = combo.getValue(), 
      root = value.store.tree.getRootNode(), 
      record = root.childNodes, 
      currentValue = combo.getValue().data.Code, 
      index = 0; 

    Ext.each(record, function(element) { 
     var data = element.getData(); 

     if (data.Code === currentValue) { 
      return false; 
     } 

     index++;  
    });