Программно установить выбранное значение дижита Выбрать виджет
Я заполняю виджет выбора dijit параметрами, когда значение другого виджета изменяется.
В моем приложении есть раскрывающееся меню "Автобусный маршрут" и раскрывающееся меню "Автобусная остановка". Пользователи назначили автобусные маршруты и остановки, которые должны быть обновлены.
Таким образом, при первой загрузке страницы в раскрывающемся списке "Маршрут" отображаются все доступные маршруты, а выбранный вами маршрут является текущим. Меню остановок загружается всеми остановками, связанными с этим маршрутом, но выбранное значение отсутствует, поэтому, по умолчанию, это первый вариант.
Всякий раз, когда пользователь изменяет текущий выбранный маршрут, меню остановок изменяется соответственно и заполняется всеми остановками, связанными с этим маршрутом.
Мой вопрос, с dojo, как я могу установить опцию "Выбрано" в меню "Стоп"?
Я хочу, чтобы было ясно, какая остановка в данный момент назначена этому пользователю, вместо того, чтобы "выбранная" остановка была первой опцией в маршруте.
Благодарю.
2 ответа
selectWidget.set("value", someValue);
Если вы указываете опции через options
свойство (массив объектов с label
, value
и т. д.), то someValue
должен соответствовать value
одного из этих объектов. (Обратите внимание, что вы также можете указать selected: true
прямо в одном из объектов в массиве, переданном options
.)
Если вы предоставляете товары из магазина dojo.data через store
собственность, тогда someValue
должен соответствовать личности одного из предметов магазина.
(правка) ПРИМЕЧАНИЕ. Выше я предполагал, что под "dijit select widget" вы ссылаетесь на dijit.form.Select
, Если вы на самом деле используете dijit.form.ComboBox
или же dijit.form.FilteringSelect
та же строка кода остается в силе, что применимо к магазинам в последнем абзаце. В случае декларативной реализации с select
tag, ComboBox и FilteringSelect по-прежнему создают хранилище, идентичности элементов которого являются значениями опций внутри тега select.
//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's item
comboBox.set("item", objItem);