【问题标题】:Dojo FilteringSelect - disable an itemDojo FilteringSelect - 禁用一个项目
【发布时间】:2013-09-10 12:36:36
【问题描述】:

是否可以使用商店从 FilteringSelect 中禁用项目?
该文档显示了一个禁用项目的示例,但前提是使用了 HTML 标记,并且没有提及使用数据存储区选择小部件。
查看源代码也没有提供任何线索。
如果重要的话,使用的 dojo 版本是 1.9

【问题讨论】:

  • 这个答案使用了option 节点的过滤,如果使用存储,则不存在这些节点。
  • 禁用过滤选择的选项没有意义,原因是当您在文本框中键入内容时,该项目可能不存在于列表中。鉴于用例是通过在文本框中输入来过滤项目列表...为什么不直接从商店中删除不需要的项目?另外,您在文档中的哪个位置看到了使用选项标签禁用 FilteringSelect 中的项目的示例?
  • 该项目本身并不是一个实际的选择,它只是为了演示目的而存在的。我正在尝试对选项进行分组(并且每个组都需要一个标题),这根本不受支持。
  • 我昨天回答了一个类似的问题。 stackoverflow.com/questions/18737418/…

标签: javascript dojo


【解决方案1】:

查看源代码后,我注意到dijit/form/Select 扩展自dijit/form/_FormSelectWidget,这实际上使得在选择中检索和禁用选项成为可能。

dijit/form/FilteringSelect 但是不是从同一个小部件扩展而来,而是从普通的dijit/form/MappedTextBox 扩展而来(因为打字能力)。因此,我很确定开箱即用是不可能的,无论是否使用商店(我无法在没有商店的情况下使用它,并且在参考指南中没有找到这样的示例)。

如果您确实需要这样的功能,我建议您查看dijit/form/FilteringSelectdijit/form/Selectdijit/form/_FormSelectWidget 的代码,并尝试从一个(或多个)扩展并自己实现这些功能。我问自己的唯一问题是,如果默认情况下未实现此功能,则可能有其背后的原因。

【讨论】:

  • 是的 - 来源没有显示此类功能的线索(禁用商店中的商品)。编辑菜单项模板的想法有意义吗?
  • 这只是模板,您还需要修改菜单项小部件本身,以便它可以处理禁用状态。我不确定这是否可行(因为我不知道如何处理禁用状态)。 FilteringSelect 比 Select 变体更“附加”到商店。如果您在文本框中输入文本,它将查询您的商店,这与菜单项模板无关(因此您也必须在那里做一些事情才能使禁用状态起作用)。
  • 点击右边的箭头不是也用来查询店铺,但是没有条件吗?此查询的结果显示在菜单 dijit 中。
猜你喜欢
  • 2011-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多