2010-06-12 10 views
1

첨부 된 itemFileReadStore 데이터 저장소의 내용을 변경하지 않고 Dojo FilteringSelect에서 중복을 제거하려고합니다. 그것이 실제로 가능하다면, 이것이 어떻게 행해지는지에 대한 정보를 찾을 수없는 것 같습니다.Dojo FilteringSelect에서 중복 제거

필자는 FilteringSelect Dijit을 확장하고 직접 기능을 제공해야한다고 생각하지만 필요가 없다고 생각합니다.

FitleringSelect의 세 인스턴스와 동일한 데이터 저장소를 사용하기 때문에 FilteringSelect 대신 데이터 저장소가 아닌 중복을 제거하려는 이유가 있습니다. 각 인스턴스는 저장소의 각 행에서 다른 값을 표시합니다.

답변

1

Storeing 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" 
    } 
]} 

내가 프로그래밍 방식

을 가게 식별자를 변경할 수있는 방법이 있는지 궁금합니다