2010-11-26 3 views
0

dire que j'ai une chaîne JSON comme ceci: code:JsonReaders multiples de lecture différentes sections des données de JsonStore

{"Staff":[{"id":1,"name":"John"},{"id":2,"name":"Mary"},{"id":3,"name":"Sandra"}],"Students":[{"id":2,"name":"Peter"},{"id":3,"name":"Carl"},{"id":4,"name":"Hodges"}]}

(Note: Si vous voulez voir une meilleure chaîne au format JSON coller s'il vous plaît sur http://json.parser.online.fr/

Et j'ai deux comboboxes cmbStaff et cmbStudents. est-il possible de lier les deux comoboxes au même magasin mais avec des jsonreaders différents? C'est-à-dire que le lecteur de données de cmbStaff lirait la chaîne avec la racine: 'Staff' et cmbStudent liront la chaîne avec la racine 'Students'? Ceci permet d'économiser la quantité d'AJAX obtenue par le magasin et d'avoir un magasin différent pour chaque comboBox (imaginez si mon formulaire avait 20 comboboxes!).

Des idées? N'hésitez pas à m'informer si vous avez besoin de plus d'informations Merci!

Répondre

1

Je ne suis pas à 100% sur ce sujet, mais je suis sûr que les meilleures pratiques sont un magasin par boîte de combo. Si vous devez faire 20 petites requêtes AJAX pour faire votre formulaire, vous faites 20 demandes. Ce n'est vraiment pas beaucoup de données. À long terme, cela rendra votre application plus facile à gérer, car vous n'aurez pas de super requête contenant tous ces éléments de données non liés provenant de plusieurs listes déroulantes.

0

Un magasin n'aura qu'un ensemble d'enregistrements après une opération de chargement; vous n'obtiendrez pas ce que vous voulez faire de ce qui précède.

J'utiliserais deux magasins distincts. Un configuré pour charger, par exemple, les étudiants, et l'autre configuré pour charger le personnel en utilisant la fonction loadData en utilisant le json le premier récupéré à la réception de l'événement de chargement.

0

Comme d'autres l'ont dit, vous voulez un magasin par combobox.

Si vous disposez de données relativement statiques, saisissez-les au format JSON une fois et collez-les dans un tableau global. L'utilisation de simples ArrayStores pour chaque combo, pour éviter de revenir sur le serveur tout le temps. Si les données sont volatiles, alors vous devrez les récupérer encore et encore, donc vous pouvez aussi bien utiliser deux JsonStores séparés, avec JsonReaders qui frappent le même script pour les données du serveur.

0

Vous pouvez avoir deux JsonReaders différents. Changez simplement entre eux manuellement (c'est-à-dire en utilisant les événements des listes déroulantes).

0

La règle de base est la suivante:

même ensemble de données sous-jacente mais différentes colonnes doivent être montré? utiliser le même magasin est OK (il suffit de pointer la liste déroulante sur le champ requis).

Différents ensembles de données sous-jacents (aucune relation entre les champs souhaités)? Différents magasins devraient être utilisés.

Questions connexes