{ xtype:"combo", mode:'local', valueField:'xiaoqu', displayField:'xiao', width: 100, triggerAction:'all', emptyText: '请选择', store:this.store1, listeners: { 'select' : function(cb) { var selectedId = cb.getValue(); this.store2.loadData(data2[selectedId-1]); } } }, { xtype:"combo", mode:'local', valueField:'value', displayField:'text', width: 100, emptyText: '请选择', triggerAction:'all', store:this.store2 }, getStore1: function() { var store1 = new Ext.data.SimpleStore({ data:this.data1, fields:['xiaoqu','xiao'] }); return store1; }, getStore2: function() { var store2 = new Ext.data.SimpleStore({ data:this.data2, fields:['value','text'] }); return store2; }, getData1:function(){ var data1= [ ['1','育新小区'], ['2','东村家园'], ['3','富力桃园'] ]; return data1; }, getData2:function(){ var data2= new Array(); data2[0] = [ ['11','表1'], ['12','表2'] ]; data2[1] = [ ['21','表3'], ['22','表4'] ]; data2[2] = [ ['31','表5'], ['32','表6'] ]; return data2; },
怎么第二个下拉列表没反映啊?
[quote]listeners:
{
'select' : function(cb)
{
var selectedId = cb.getValue();
this.store2.loadData(data2[selectedId-1]);
}
}
[/quote]
改成:[code="java"]listeners:
{
'select' : function(cb)
{
var selectedId = cb.getValue();
this.store2.loadData(data2[selectedId-1]);
},
scope:this
}
[/code] 试试看看
没有传值给第二个下拉列表,
或者传值有错误,导致后台有请求,但返回数据是null。建议alert一下
'select' : function(cb)
{
var selectedId = cb.getValue();
[color=red]this.store2[/color].loadData(data2[selectedId-1]);
}
应该是这个地方的问题,你这个this指的范围是comboBox
[quote]listeners:
{
'select' : function(cb)
{
var selectedId = cb.getValue();
this.store2.loadData(data2[selectedId-1]);
}
} [/quote]
这段代码改成
[code="js"]
var combo2=Ex.getCmp('第二个combo的ID');
combo2.getStore().loadData(data2[selectedId-1]);
[/code]
否则第二个下拉列表框不会自动刷新到新的store值