2013-06-04 2 views
2

Я хочу обновить выпадающий список в FilteringSelect после установки displayValue. Я знаю, что FilteringSelect выбрал первый элемент из результатов после установки displayValue, но когда я открываю раскрывающийся список (функция openDropDown()), он имеет старые результаты фильтрации.Dojo FilteringSelect - выпадающий список обновлений или ручной фильтр

ответ

2

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

В зависимости от версии Dojo вам придется работать с додзё/магазин или додзё/данных API. Для додзё/Stor API (новые версии Dojo), вы должны сделать что-то вроде:

var myItem = filteringSelect.item; 
myItem.name = "Testing 1 2 3"; 
myStore.put(filteringSelect.item); 

На основе ID будет обновлять этот объект.

Пример JSFiddle можно найти here. Он заменит displayedValue и сам магазин, когда вы нажмете кнопку «Тест».


UPDATE: я заметил ваш ответ (вы должны прокомментировали меня, потому что теперь я не получал никакого уведомления в моем почтовом ящике);

Если я правильно понимаю, вы хотите ввести значение программно и открыть выпадающий список с выделенными результатами. Ну, это возможно с помощью:

filteringSelect._startSearch("C"); 

Это функция AutoCompleterMixin при условии. Вы можете увидеть результат в моем обновленном JSFiddle.

+0

Я не хочу изменять значение в списке DropDown, я хочу обновить его и открыть (программно, точно так же, в filteringSelect (что-то вроде ввода текста пользователем) - отобразить раскрывающийся список вниз – lukisp

+0

Я обновил свой ответ с возможным решением. – g00glen00b

Смежные вопросы