这可能是一个愚蠢的问题,但我想问一下当组合框选择的值改变时是否有可能更改另一个组合框的存储数据。
这可能令人困惑,所以让我举一个明确的例子,......
comboboxA有一个包含国家/地区名称的数据存储区 comboboxB有一个包含城市名称
的数据存储区因此,comboboxA
中的数据可能是:
- USA - Mexico - England
当comboboxB
的值为“USA”时comboboxA
中的数据为:
- Texas - New York - Washington
但是当comboboxA的值是“England”时,comboboxB中的数据将是:
- London - Manchester
我怎么能这样做?
我试过了:
comboboxA.on("change", function(cb, newValue, oldValue){
if(newValue == "USA"){
comboboxB.store.loadData(["Texas", "New York", "Washington"]);
comboboxB.setValue("Texas");
}
else if(newValue == "England"){
comboboxB.store.loadData(["London", "Manchester"]);
comboboxB.setValue("London");
}
});
我的代码有问题吗?
答案 0 :(得分:0)
查看更新的Combobox FAQ。您必须使用select事件的侦听器。请参阅"链接的组合框"
中的示例答案 1 :(得分:-1)
您的数据应采用以下格式:
[ {cityName: "Texas"}, {cityName: "New York"}, {cityName: "Washington"} ]
comboboxB的商店应该包含以下字段:
var storeB = Ext.create('Ext.data.Store', {
fields : { 'cityName' },
...
});
但你没有说出错误是什么,所以我可以猜测这可能是你的问题。你应该提出更多关于问题是什么以及它是如何出现的细节。