2010-06-12 71 views
1

我試圖從Dojo FilteringSelect中刪除重複項而不更改附加的itemFileReadStore數據存儲的內容。如果確實有可能,我似乎無法找到任何有關如何完成的信息。從Dojo FilteringSelect中刪除重複項

我在想我可能不得不擴展FilteringSelect Dijit並提供自己的功能,但我希望不必。

我試圖刪除FilteringSelect而不是數據存儲重複項的原因是因爲我使用了三個FitleringSelect實例的相同數據存儲,每個實例顯示商店每行的不同值。

回答

1

如果您的商店FilteringSelect searchAttr與您的dataStore「標識符」中的相同,您將在下拉列表中看到一組唯一的值。

例如,如果您將標識符從myStore更改爲「顏色」,則您的下拉菜單將只顯示紅色,橙色和黃色,而不是重複的黃色。這就是爲什麼,如果您在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" 
    } 
]} 

我不知道是否有通過編程修改存儲標識符

方式