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