extjs4组合框更改还会更改另一个组合框数据存储区,并选择该值

时间:2011-05-16 08:05:52

标签: combobox extjs4 onchange datastore

这可能是一个愚蠢的问题,但我想问一下当组合框选择的值改变时是否有可能更改另一个组合框的存储数据。

这可能令人困惑,所以让我举一个明确的例子,......

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");
    }

});

我的代码有问题吗?

2 个答案:

答案 0 :(得分:0)

查看更新的Combobox FAQ。您必须使用select事件的侦听器。请参阅"链接的组合框"

中的示例

答案 1 :(得分:-1)

您的数据应采用以下格式:

[ {cityName: "Texas"}, {cityName: "New York"}, {cityName: "Washington"} ]

comboboxB的商店应该包含以下字段:

var storeB = Ext.create('Ext.data.Store', {
    fields : { 'cityName' },
    ...
});

但你没有说出错误是什么,所以我可以猜测这可能是你的问题。你应该提出更多关于问题是什么以及它是如何出现的细节。