Программно установить выбранное значение виджета "Диджит"

Я заполняю виджет выбора dijit с параметрами всякий раз, когда меняется другое значение виджета.

В моем приложении theres выпадающее меню для "Bus Route" и выпадающее меню для "Bus Stop". Пользователи назначили маршруты и остановки маршрута, которые необходимо обновить.

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

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

Мой вопрос: с dojo, как я могу установить опцию "Выбранный" в меню остановки?

Я хочу, чтобы было ясно, какая остановка в настоящее время назначена этому пользователю, вместо того, чтобы "выбранная" остановка была первым вариантом маршрута.

Спасибо.

Ответы

Ответ 1

selectWidget.set("value", someValue);

Если вы указываете параметры с помощью свойства options (массив объектов с label, value и т.д.), то someValue должен соответствовать value одного из этих объектов. (Обратите внимание, что вы также можете указать selected: true прямо в одном из объектов массива, переданных в options.)

Если вы предоставляете элементы из хранилища dojo.data через свойство store, то someValue должен соответствовать идентификатору одного из элементов магазина.

(edit) ПРИМЕЧАНИЕ. Я предположил, что с помощью "виджета выбора dijit" вы имеете в виду dijit.form.Select. Если вы фактически используете dijit.form.ComboBox или dijit.form.FilteringSelect, эта же строка кода по-прежнему сохраняется, как применимо к магазинам в последнем абзаце. В случае декларативного экземпляра с тегом select ComboBox и FilteringSelect все еще создают хранилище, чьи идентификаторы элементов являются значениями параметров в теге select.

Ответ 2

//With dojo version 1.9
//search for the item in store dojo/store/Memory with the corresponding id value
var objItem = store.get("1");
//set the combobox item
comboBox.set("item", objItem);