2010-11-26 11 views
0

Lesen sagen, ich habe ein JSON-String wie folgt aus: Code:Mehrere JsonReaders verschiedene Abschnitte JsonStore Daten

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

(Hinweis: Wenn Sie eine bessere formatiert json Zeichenfolge einfügen Sie es sehen wollen auf http://json.parser.online.fr/)

Und ich habe zwei Comboboxen CmbStaff und CmbStudents. ist es möglich, beide comoboxen an denselben store zu binden, aber unterschiedliche jsonreader zu haben? d. h. der Datenleser von cmbStaff würde die Zeichenkette mit root lesen: 'Staff' und cmbStudent liest die Zeichenkette mit dem Stamm 'Students'?

Dies ist zu speichern die Menge von AJAX wird durch den Laden gemacht und mit einem anderen Speicher für jede ComboBox (stellen Sie sich vor, wenn mein Formular hatte 20 Comboboxen!).

Irgendwelche Ideen? Fühlen Sie sich frei, mich zu informieren, wenn Sie weitere Informationen benötigen Danke!

Antwort

1

Ich bin nicht 100% auf diese, aber ich bin mir ziemlich sicher, Best Practices ist ein Geschäft pro Kombinationsfeld. Wenn Sie 20 kleine AJAX-Anfragen stellen müssen, um Ihr Formular zu erstellen, stellen Sie 20 Anfragen. Es sind wirklich nicht so viele Daten. Auf lange Sicht wird Ihre App einfacher zu warten sein, weil Sie keine Super-Anfrage haben werden, die all diese nicht verwandten Daten aus einer Reihe von Kombinationsfeldern enthält.

0

Ein Speicher enthält nach einer Ladeoperation nur einen Datensatzsatz; Sie werden nicht bekommen, was Sie wollen, indem Sie das oben genannte tun.

Ich würde zwei getrennte Geschäfte verwenden. Ein Beispiel ist so konfiguriert, dass beispielsweise Studenten geladen werden, während das andere so konfiguriert ist, dass es Mitarbeiter unter Verwendung der Funktion loadData mithilfe des JSON lädt, der beim Empfang des Ladeereignisses zuerst abgerufen wurde.

0

Wie andere gesagt haben, möchten Sie einen Laden pro Combobox.

Wenn Sie ziemlich statische Daten haben, greifen Sie sie als Json einmal, und stecken Sie es in ein globales Array. Verwenden Sie für jede Kombination einfache ArrayStores, um zu vermeiden, dass Sie ständig zum Server zurückkehren.

Wenn die Daten flüchtig sind, müssen Sie sie immer wieder holen, also können Sie auch einfach zwei separate JsonStores verwenden, wobei JsonReaders dasselbe Skript für die Serverdaten verwenden.

0

Sie können zwei verschiedene JsonReader verwenden. Wechseln Sie einfach zwischen ihnen manuell (d. H. Mit Ereignissen von Comboboxen).

0

Die Grundregel ist dies:

Samt zugrunde liegende Datenmenge aber verschiedene Spalten müssen gezeigt werden? Die Verwendung desselben Speichers ist OK (zeigen Sie einfach die Combobox auf das gewünschte Feld).

Unterschiedlicher zugrunde liegender Datensatz (keine Beziehung zwischen gewünschten Feldern)? Verschiedene Geschäfte sollten verwendet werden.

Verwandte Themen