У меня есть данные в формате как массив хэшей. 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);
}
});