从Dojo FilteringSelect中删除重复项

时间:2010-06-12 11:46:09

标签: dojo duplicates dijit.form

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

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

我试图使用FilteringSelect而不是数据存储删除重复项的原因是因为我使用了与FitleringSelect的三个实例相同的数据存储,每个实例都显示商店每行的不同值。

1 个答案:

答案 0 :(得分:1)

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

例如,如果您将标识符从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"
    }
]}

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