为什么我的ExtJS 4.2组合框没有更新?
在下面的代码中,当用户第一次从第一个组合中选择值时,第二个组合不会被填充。第二次在第一个组合中选择值时,第二个组合已正确填充 这是一个简化的示例,但是如果我们能够解决这个问题,我的较大代码中的问题也可能得到解决为什么我的ExtJS 4.2组合框没有更新?,extjs,Extjs,在下面的代码中,当用户第一次从第一个组合中选择值时,第二个组合不会被填充。第二次在第一个组合中选择值时,第二个组合已正确填充 这是一个简化的示例,但是如果我们能够解决这个问题,我的较大代码中的问题也可能得到解决 Ext.onReady(function() { var level1Store = Ext.create('Ext.data.Store', { fields: [{ name: 'Level1name' }, { name: 'Level2na
Ext.onReady(function() {
var level1Store = Ext.create('Ext.data.Store', {
fields: [{ name: 'Level1name' }, { name: 'Level2names' }],
data: [
{ "Level1name": "level1 value1",
"Level2names": [
{ "Level2name": "level1 value1_1"},
{ "Level2name": "level1 value1_2"},
{ "Level2name": "level1 value1_3"}
]
},
{ "Level1name": "level1 value2",
"Level2names": [
{ "Level2name": "level1 value2_1"},
{ "Level2name": "level1 value2_2"},
{ "Level2name": "level1 value2_3"}
]
},
{ "Level1name": "level1 value3",
"Level2names": [
{ "Level2name": "level1 value3_1"},
{ "Level2name": "level1 value3_2"},
{ "Level2name": "level1 value3_3"}
]
}
]
});
var level2Store = Ext.create('Ext.data.Store', {
fields: [{ name: 'Level2name' }],
proxy: {
type: 'memory',
reader: {
type: 'json'
}
}
});
Ext.create('Ext.panel.Panel', {
width: 500,
height: 500,
items: [{
xtype: 'combo',
id: 'combo1',
fieldLabel: 'Level1',
store: level1Store,
displayField: 'Level1name',
valueField: 'Level1name',
listeners: {
change: function() {
var combobox = Ext.getCmp('combo1');
var v = combobox.getValue();
var record = combobox.findRecord(combobox.valueField || combobox.displayField, v);
var index = combobox.store.indexOf(record);
var dataSource = level1Store.getAt(index).get("Level2names");
level2Store.removeAll();
level2Store.add(dataSource);
level2Store.sync();
}
}
}, {
xtype: 'combo',
fieldLabel: 'Level2',
store: level2Store,
displayField: 'Level2name',
valueField: 'Level2name'
}],
renderTo: Ext.getBody()
});
});
答案是将queryMode:“local”添加到组合框定义中:xtype:“combobox”,fieldLabel:“Test data”,store:“com.myCo.myStore”,queryMode:“local”,您可以回答自己的问题,这将是添加此选项的正确位置。