我在过滤数组存储时遇到问题。
情况
我有 2 个带有数组存储的组合框。组合框 1 和组合框 2 都处于“本地”模式并具有预定义的数组存储。当我在第一个组合框中单击并选择一行时,我在第二个组合框(尚未单击)上应用过滤器。问题是第二个组合框还没有呈现它的数据(或 html),所以没有应用过滤器。
当我单击第二个组合框,然后单击第一个组合框时,将应用过滤器并开始工作。
我的问题是,如何预渲染 array_store/combobox?
我确实尝试过先扩展组合框,但也没有为我工作。(见注释代码)
var store1 = new Ext.data.ArrayStore({
fields: ['id','name'],
data:somedata //array of some data
});
var store2 = new Ext.data.ArrayStore({
fields: ['id','name'],
data:somedata //array of some data
});
var combobox1 = {
name: 'combobox_1',
xtype: 'combo',
hiddenName: 'combobox_1',
store: store1,
displayField:'name',
valueField:'id',
mode:'local',
triggerAction: 'all',
allowBlank:true,
emptyText:'Select...',
listeners:{
select: function(st, r){
var selected = r.get('name');
var combobox2 = Ext.getCmp('combobox2');
//combobox2.expand();
combobox2.store.filter([
{
property : 'name',
value : selected,
anyMatch : true,
caseSensitive: false
}
]);
},
scope:this
}
}
var combobox2 = {
name: 'combobox_2',
xtype: 'combo',
hiddenName: 'combobox_2',
store: store2,
id: 'combobox2'
displayField:'name',
valueField:'id',
mode:'local',
triggerAction: 'all',
allowBlank:true,
emptyText:'Select...',
}