gpt4 book ai didi

javascript - 道场 1.9 : Dijit: Disabling option items in a dijit/Form/FilteringSelect that was populated using a store

转载 作者:行者123 更新时间:2023-11-29 22:09:39 26 4
gpt4 key购买 nike

我正在尝试禁用使用 store 填充的 dijit/Form/FilteringSelect 控件中的选项。

遵循本指南:http://dojotoolkit.org/documentation/tutorials/1.9/selects_using_stores/

似乎只有在不使用存储的情况下创建 Select 控件才有可能。我从调试 FilteringSelect 示例中推断出这一点。我尝试了两种方法来禁用一个项目:

  1. 遵循此线程中的建议:How to disable a single option in a dijit.form.Select? .但是,FilteringSelect 示例中的“stateStore”存储对象没有“选项”属性。

  2. 正在尝试访问存储对象中的适当元素。例如,在 FilteringSelect 示例中,我执行以下操作:

    var optionItem = stateStore.get("AZ");
    optionItem.disabled = true;
    stateStore.put(optionItem);
    select.startup();

这两种方法似乎都不起作用,因此在 Dijit Select 控件中禁用项目的唯一方法似乎是改用 options 属性。提前感谢您的解决方案!

最佳答案

商店中的数据(实际上是业务数据)和呈现的数据(包含 View 逻辑)之间存在差异。如果您使用商店,您实际上是在将呈现的数据提供给您的商店。

要更改呈现的数据(= 选择中的选项),您需要使用 dijit/form/SelectgetOptions(idx) 方法可以阅读 API documentation .要更改选项的 disabled 状态,您可以使用:

registry.byId("mySelect").getOptions(myId).disabled = true;

这就是您所需要的。更改商店数据无济于事,因为它代表业务数据,而不是 View 数据。我也做了一个例子JSFiddle其中第二个选项被禁用。

关于javascript - 道场 1.9 : Dijit: Disabling option items in a dijit/Form/FilteringSelect that was populated using a store,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18737418/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com