Программно установить выбранное значение виджета "Диджит"
Я заполняю виджет выбора 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);