我将数据格式化为哈希数组。 3个字段是id,value和production_group_id。现在我要做的是根据记录的production_group_id过滤组合框。
基本上,存储中的初始填充数据。我想过滤字段。不知何故,听众没有工作。
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 :(得分:0)
如果您使用任何字段(包括Ext.form.ComboBox
),那么您应该收听change
事件。在字段中更改值后触发它,因此当您从列表中选择某些内容时也会触发。