我有一个组合框,根据另一个组合框的选择填充其值.我已经看到了基于选择更改底层存储中的参数的示例,但我想要实现的是根据第一个组合的选择更改第二个组合的存储本身.这是我的代码,但它不起作用.有人可以帮忙吗?
{
xtype: 'combo',
id: 'leads_filter_by',
width: 100,
mode: 'local',
store: ['Status','Source'],
//typeAhead: true,
triggerAction: 'all',
selectOnFocus:true,
typeAhead: false,
editable: false,
value:'Status',
listeners:{
'select': function(combo,value,index){
var filter_to_select = Ext.getCmp('cmbLeadsFilter');
var container = filter_to_select.container;
if (index == 0){
filter_to_select.store=leadStatusStore;
filter_to_select.displayField='leadStatusName';
filter_to_select.valueField='leadStatusId';
} else if(index==1) {
filter_to_select.store=leadSourceStore;
filter_to_select.displayField='leadSourceName';
filter_to_select.valueField='leadSourceId';
}
}
}
},
{
xtype: 'combo',
id: 'cmbLeadsFilter',
width:100,
store: leadStatusStore,
displayField: 'leadStatusName',
valueField: 'leadStatusId',
mode: 'local',
triggerAction: 'all',
selectOnFocus:true,
typeAhead: false,
editable: false
},
Run Code Online (Sandbox Code Playgroud)
这不是它的设计工作方式!当您在配置中设置商店时,您将商店绑定到组合。您不更改商店,而是应该在需要时更改数据。
正确的方法是从服务器加载正确的数据到商店。要获取数据,您可以传递参数,这将帮助服务器端代码获取您需要加载的选项集。