1

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

这可能会令人困惑,所以让我举一个清晰的例子,...

comboboxA 有一个包含国家名称的数据存储 comboboxB 有一个包含城市名称的数据存储

因此,其中的数据comboboxA可能是:

- 美国
 - 墨西哥
 - 英格兰

comboboxB当值为comboboxA“USA”时的数据将是:

- 德克萨斯州
 - 纽约
 - 华盛顿

但是当comboboxA 的值为“England”时,comboboxB 中的数据将是:

- 伦敦
 - 曼彻斯特

我怎么能那样做?

我试过了:

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

});

我的代码有问题吗?

4

2 回答 2

0

请参阅更新的组合框常见问题解答。您必须为 select 事件使用侦听器。请参阅“链接的组合框”中的示例

于 2011-12-29T08:23:58.060 回答
-1

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

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

comboboxB 的商店应该有如下字段:

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

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

于 2011-09-16T11:41:01.193 回答