【问题标题】:Programmatically set the selected value of a dijit Select widget以编程方式设置 dijit Select 小部件的选定值
【发布时间】:2011-10-23 22:47:18
【问题描述】:

每当另一个选择小部件的值发生变化时,我都会使用选项填充 dijit 选择小部件。

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

所以当页面第一次加载时,路由下拉框有所有可用的路由,你当前分配到的路由就是选中的值。停靠点菜单已加载与该路线关联的所有停靠点,但没有选择值,因此默认情况下,它是第一个选项。

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

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

我希望明确哪个站点当前分配给该用户,而不是“选定”站点是路线中的第一个选项。

谢谢。

【问题讨论】:

    标签: dojo


    【解决方案1】:
    selectWidget.set("value", someValue);
    

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

    如果您通过store 属性提供来自dojo.data 存储的项目,那么someValue 应该与存储项目之一的标识相匹配。

    (编辑)注意:我在上面假设“dijit 选择小部件”指的是dijit.form.Select。如果您实际使用dijit.form.ComboBoxdijit.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's item
      comboBox.set("item", objItem);
      

      【讨论】:

      • 这正是我要找的地方!
      猜你喜欢
      • 1970-01-01
      • 2018-07-25
      • 2018-08-16
      • 1970-01-01
      • 2021-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多