【问题标题】:Removing duplicates from a Dojo FilteringSelect从 Dojo FilteringSelect 中删除重复项
【发布时间】:2011-03-02 23:52:47
【问题描述】:

我正在尝试从 Dojo FilteringSelect 中删除重复项,而不更改附加的 itemFileReadStore 数据存储的内容。如果确实可能的话,我似乎找不到任何关于如何完成的信息。

我想我可能必须扩展 FilteringSelect Dijit 并自己提供功能,但我希望不必这样做。

我尝试使用 FilteringSelect 而不是数据存储删除重复项的原因是因为我使用相同的数据存储和 FitleringSelect 的三个实例,每个实例显示来自存储的每一行的不同值。

【问题讨论】:

    标签: dojo duplicates dijit.form


    【解决方案1】:

    如果您的商店 FilteringSelect searchAttr 与您的数据存储“标识符”中的相同,您将在下拉列表中看到一组唯一的值。

    例如,如果您将标识符从 myStore 更改为“color”,您的下拉菜单将仅显示红色、橙色和黄色,而不是重复的黄色。

    这就是为什么,如果您在 FilteringSelect 中使用此商店定义并将 searchAttr 设置为“Fruit”,您将只看到两个值;橙子和苹果

    
    var myStore = new dojo.data.ItemFileReadStore({
                    url: 'data.json'
                });
    
    <div dojoType="dijit.form.ComboBox" store="myStore" id="fsKeywords" searchAttr="name" onChange="filterGrid()"></div>
    


    data.json 文件:

        
    
    {
        identifier: "Fruit",
        label: "Name",
        items: [
             {
                  "Fruit":"orange",
                  "color":"red",
              "size":"small"
        },
             {
                  "Fruit":"orange",
                  "color":"orange",
              "size":"big"
        },
             {
                  "Fruit":"orange",
                  "color":"yellow",
              "size":"small"
        },
            {
                  "Fruit":"apple",
                  "color":"yellow",
              "size":"small"
        }
    ]}
    
    

    我想知道是否有办法以编程方式更改商店标识符

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-04
      • 2015-09-30
      相关资源
      最近更新 更多