以编程方式设置dijit Select小部件的选定值

时间:2011-10-23 22:47:18

标签: dojo

每当其他选择窗口小部件的值发生变化时,我就会使用选项填充dijit选择窗口小部件。

在我的应用程序中,有一个“巴士路线”的下拉菜单和一个“巴士站”的下拉菜单。 用户已分配了可更新的公交路线和车站。

因此,当页面首次加载时,路径下拉框中包含所有可用路径,并且您当前分配的路径是所选值。停止菜单加载了与该路线关联的所有停靠点,但没有选定的值,因此,默认情况下,它是第一个选项。

每当用户更改当前选定的路线时,停止菜单会相应更改,并填充与该路线相关的所有停靠点。

我的问题是,使用dojo,如何在停止菜单中设置“已选择”选项?

我希望清楚当前为该用户分配了哪个停止,而不是“选定”停止作为路径中的第一个选项。

感谢。

2 个答案:

答案 0 :(得分:17)

selectWidget.set("value", someValue);

如果您通过options属性(labelvalue等对象数组)指定选项,则someValue应与{{1}匹配其中一个对象。 (请注意,您也可以在传递给value的数组中的一个对象中指定selected: true。)

如果您通过options属性从dojo.data商店提供商品,则store应该与商店商品的标识相匹配。

(编辑)注意:我在上面假设“dijit select widget”指的是someValue。如果您实际使用dijit.form.Selectdijit.form.ComboBox,则相同的代码行仍然适用,适用于最后一段中的商店。对于带有dijit.form.FilteringSelect标记的声明性实例化,ComboBox和FilteringSelect仍然创建一个商店,其商品的标识是select标签中选项的值。

答案 1 :(得分:3)

//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);