我正在尝试从 Dojo FilteringSelect 中删除重复项,而不更改附加的 itemFileReadStore 数据存储的内容。如果确实可能的话,我似乎找不到任何关于如何做到这一点的信息。
我想我可能必须扩展 FilteringSelect Dijit 并自己提供功能,但我希望不必这样做。
我尝试使用 FilteringSelect 而不是数据存储删除重复项的原因是因为我使用相同的数据存储和 FitleringSelect 的三个实例,每个实例显示来自存储的每一行的不同值。
我正在尝试从 Dojo FilteringSelect 中删除重复项,而不更改附加的 itemFileReadStore 数据存储的内容。如果确实可能的话,我似乎找不到任何关于如何做到这一点的信息。
我想我可能必须扩展 FilteringSelect Dijit 并自己提供功能,但我希望不必这样做。
我尝试使用 FilteringSelect 而不是数据存储删除重复项的原因是因为我使用相同的数据存储和 FitleringSelect 的三个实例,每个实例显示来自存储的每一行的不同值。
如果您的商店 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"
}
]}
我想知道是否有办法以编程方式更改商店标识符