2010-06-12 2 views
1

J'essaie de supprimer les doublons d'un Dojo FilteringSelect sans modifier le contenu du magasin de données itemFileReadStore attaché. Je n'arrive pas à trouver des informations sur la façon dont cela est fait, si c'est effectivement possible.Suppression des doublons d'un Dojo FilteringSelect

Je pense que je devrais étendre le FilteritSelect Dijit et fournir la fonctionnalité moi-même, mais j'espère ne pas avoir à le faire. La raison pour laquelle j'essaie de supprimer des doublons avec FilteringSelect et non le magasin de données est que j'utilise le même magasin de données avec trois instances de FitleringSelect, chacune affichant des valeurs différentes de chaque ligne du magasin.

Répondre

1

Si votre magasin FilteringSelect searchAttr est le même que dans votre "identifiant" de stock de données, vous verrez un ensemble unique de valeurs dans la liste déroulante. Par exemple, si vous changez l'identifiant de myStore en "couleur", votre liste déroulante montrera seulement le rouge, l'orange et le jaune au lieu d'avoir un double jaune. C'est pourquoi, si vous utilisez cette définition de magasin dans votre FilteringSelect et que vous définissez searchAttr sur "Fruit", vous ne verrez que deux valeurs; orange et pomme


var myStore = new dojo.data.ItemFileReadStore({ 
       url: 'data.json' 
      }); 
<div dojoType="dijit.form.ComboBox" store="myStore" id="fsKeywords" searchAttr="name" onChange="filterGrid()"></div> 


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

Je me demande s'il y a un moyen de changer l'identifiant du magasin programatically

Questions connexes