2011-07-15 4 views
2

J'ai dojo.data.ItemFileReadStore comme suit:Initialement valeur sélectionnée du magasin dans dijit.form.FilteringSelect

var partyStore = new dojo.data.ItemFileReadStore({ 
    id: 'partyStore', 
    data: { 
    label:'name', 
    items:[ 
     {value:'APPLES', name:['Apples']}, 
     {value:'ORANGES', name:['ORANGES']}, 
     {value:'PEARS', name:['PEARS']} 
    ]} 
}); 

et dijit.form.FilteringSelect comme:

var partyList = new dijit.form.FilteringSelect({ 
    id: "partyLookup", 
    name: 'partyLookup', 
    store: partyStore, 
    searchAttr: "name"}, infoDiv); 

Comment Je fais la valeur initialement choisie être Oranges? J'ai essayé différentes entrées pour la valeur dans FilteringSelect, donc je l'ai omis dans cet exemple.

Répondre

1

J'avais manqué l'identificateur des données du magasin. Il semble que sans l'identifiant étant défini, il les indexe à savoir. 0,1,2,3,4 ...

Une fois que je Set:

identifier: 'valeur' ​​

la valeur courante de la FilteringSelect revient en tant que forme 'valeur' ​​des données.

Désolé de répondre à ma propre question, merci à tous ceux qui ont aidé ou ont jeté un coup d'oeil.

3

Votre magasin de données ne semble pas correct. Essayez de le changer pour:

var partyStore = new dojo.data.ItemFileReadStore({ 
    identifier: 'value', 
    items:[ 
     {value:'APPLES', name:'Apples'}, 
     {value:'ORANGES', name:'ORANGES'}, 
     {value:'PEARS', name:'PEARS'} 
    ] 
}); 

Vous pouvez ensuite définir la valeur du dijit.

partyList.set('value', 'ORANGES'); 
+0

Vous avez raison, désolé, c'était une erreur dans mon entrée dans StackOverflow. Le problème reste. Il semble qu'il sélectionne seulement les articles quand je change la valeur affichée plutôt que la valeur? – David

Questions connexes