2014-11-10 1 views
0

У меня есть данные в формате как массив хэшей. 3 поля: id, value и production_group_id. Теперь то, что я хочу сделать, это фильтр-поле со списком на основе production_group_id записей.Невозможно фильтровать локальные записи в ExtJs

В принципе, из начальных заполненных данных в магазине. Я хочу фильтровать поля. Каким-то образом слушатель не работает.

Ext.define('fabmin.view.ComboColumn', { 
    extend: 'Ext.grid.column.Column', 
    alias: 'widget.comboboxcolumn', 
    width: 100, 
    isEditable: true, 
    list: [], // list = [{id: 'id1', value: 'value1', production_group_id: 'production_group_id1 }, {id: 'id1', value: 'value1', production_group_id: 'production_group_id1 }] 
    initComponent: function(){ 
     var me = this, 
      list = me.list || []; 

     if(me.isEditable){ 
      me.editor = Ext.create('Ext.form.ComboBox',{ 
       forceSelection: true, 
       typeAhead: true, 
       queryMode: 'local', 
       displayField: 'value', 
       valueField: 'id', 
       store: Ext.create('Ext.data.ArrayStore', { 
        fields: ['id', 'value','production_group_id'], 
        data: list 
       }), 
       allowBlank: false, 
       listeners: { 
        click: function (v, p, record, rowIndex, colIndex, store, view) { 
         debugger 
         var newdata = [];; 
         for (i = 0; i < me.store.length; i++) { 
          if (me.store[i].production_group_id == record.production_group_id){ 
           newdata.push(me.store[i]) 
          } 
         } 
         debugger 
         me.store.load(newdata); 
        }, 
        scope: me 
       } 
      }); 
     } 

     me.renderer = function(v, p, record, rowIndex, colIndex, store, view) { 
      var len = list.length, 
       currOpt; 
      while(len--) { 
       currOpt = list[ len ]; 
       if (v == currOpt.id) { 
        return currOpt.value; 
       } 
      } 
      return v; 
     } 
     me.callParent(arguments); 
    } 
}); 

ответ

0

При использовании любого поля (включая Ext.form.ComboBox), то вы должны слушать change события. Он запускается после изменения значения в поле, так же, когда вы выбираете что-то из списка.

Смежные вопросы