Несколько JsonReader, читающих различные разделы данных JsonStore - PullRequest
0 голосов
/ 26 ноября 2010

скажем, у меня есть строка json, подобная этой: Код:

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

(Примечание. Если вы хотите увидеть строку json с лучшим форматированием, вставьте ее на http://json.parser.online.fr/)

И у меня есть два комбинированных списка: cmbStaff и cmbStudents. Возможно ли связать оба комбинированных списка с одним и тем же хранилищем, но с разными считывателями json?root «Студенты»?

Это позволяет сэкономить количество AJAX, получаемого магазином и имеющего отдельный магазин для каждого comboBox (представьте, если в моей форме было 20 комбинированных списков!).Любые идеи? Не стесняйтесь сообщить мне, если вам нужна дополнительная информация Спасибо!

Ответы [ 5 ]

1 голос
/ 26 ноября 2010

Я не на 100% в этом, но я уверен, что лучшие практики - это один магазин на поле со списком. Если вам нужно сделать 20 небольших запросов AJAX для заполнения формы, вы сделаете 20 запросов. Это действительно не так много данных. В долгосрочной перспективе это облегчит обслуживание вашего приложения, поскольку у вас не будет суперзапроса, содержащего все эти несвязанные биты данных из набора комбо-блоков.

0 голосов
/ 29 ноября 2010

Основное правило таково:

Тот же базовый набор данных, но должны отображаться разные столбцы?использование того же хранилища - это нормально (просто укажите комбинированный список на требуемое поле).

Другой базовый набор данных (нет связи между нужными полями)?Следует использовать разные магазины.

0 голосов
/ 28 ноября 2010

Вы можете иметь два разных JsonReader.Просто переключайтесь между ними вручную (т. Е. Используя события в выпадающих списках).

0 голосов
/ 27 ноября 2010

Как уже говорили другие, вам нужен один магазин на комбобокс.

Если у вас достаточно статичные данные, возьмите их как Json один раз и вставьте в некоторый глобальный массив. Используйте простые ArrayStores для каждой комбинации, чтобы не возвращаться к серверу постоянно.

Если данные изменчивы, вам придется их извлекать снова и снова, так что вы также можете просто использовать два отдельных JsonStores с JsonReaders, которые запускают один и тот же скрипт для сервера данных.

0 голосов
/ 27 ноября 2010

В хранилище будет только один набор записей после операции загрузки; Вы не получите того, что хотите, выполнив вышесказанное.

Я бы использовал два отдельных магазина. Один из них настроен на загрузку, скажем, студентов, а другой настроен на загрузку персонала с помощью функции loadData с использованием json, первого полученного при получении события загрузки.

...