Изменения в выпадающем списке extjs4 также изменяют другое хранилище данных в выпадающем списке и выбирают значение - PullRequest
1 голос
/ 16 мая 2011

Это может быть глупый вопрос, но я хочу спросить, есть ли возможность изменить данные хранилища другого комбобокса при изменении значения, выбранного комбобоксом.

Это может сбивать с толку, поэтому позвольте мне привести ясный пример ...

comboboxA имеет хранилище данных, которое содержит название страны У comboboxB есть хранилище данных, которое содержит название города

Итак, данные в comboboxA могут быть:

 - USA 
 - Mexico
 - England

И данные в comboboxB, когда значение comboboxA равно "США", будут:

 - Texas
 - New York
 - Washington

но если значение comboboxA равно «Англия», данные в 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 голосов
/ 29 декабря 2011

См. Обновленный FAQ по Combobox . Вы должны использовать слушателей для события выбора. См. Пример в «связанных комбинированных списках»

0 голосов
/ 16 сентября 2011

Ваши данные должны быть в форме:

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

А в хранилище для comboboxB должны быть поля типа:

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

Но вы не сказали, в чем была ошибка, так что я могу только догадываться, может ли это быть вашей проблемой. Вы должны придумать более подробную информацию о том, в чем проблема и как она проявляется.

...