2012-06-06 2 views
0

Я довольно новичок в ExtJS, поэтому мне было интересно, какой подход лучше всего отображать различные виды информации с использованием одной сетки. Это то, о чем я думаю. У меня есть три разных хранилища данных, каждый из которых использует прокси-сервер и возвращает JSON. Назовем их STORE1, STORE2 и STORE3. Я использую разные магазины, потому что у каждого из них есть разные параметры, которые выполняются для получения с сервера. Теперь я хочу включить три кнопки, каждая из которых запускает магазин, который будет использоваться для заполнения Grid. Как точно указать новое хранилище для Grid для использования после его создания? Я не вижу setStore() в объекте Grid, поэтому я не уверен, как решить проблему. Если бы кто-то мог дать мне некоторое представление, это было бы высоко оценено.ExtJS: загрузка нескольких магазинов с использованием одной сетки

ответ

1

Существует несколько способов решить эту проблему.

  • Первое, что я хотел бы сделать, это действительно продумать ваш прецедент. Вы уверены, что так вы хотите обрабатывать свой пользовательский интерфейс? Имеет ли смысл фильтр данных (по умолчанию или по взаимодействию с пользователем). Вот несколько примеров этого. Один из них, который приходит на ум, - простой виджет задачи (не так просто). http://docs.sencha.com/ext-js/4-1/#!/example/simple-tasks/index.html - верхняя правая кнопка фильтрует хранилище на основе выбора пользователя. Он использует одну сетку + один магазин, но фильтрует данные на основе выбора пользователя.

  • Если вы настроены на загрузку данных из разных магазинов, вы можете использовать один магазин для управления представлением и другими магазинами для извлечения данных. При загрузке хранилищ, которые извлекают данные, вы используете метод loadData (или loadRecords) для обновления хранилища, контролирующего представление. Имеет смысл? Остерегайтесь здесь угловых дел. Что произойдет, если вы дважды загрузите одни и те же данные? Если вы используете опцию «добавить» в методе loadData?

удачи.

+0

Спасибо за ваши отзывы. Этот пример заставил меня думать о новых вещах сейчас. Мне очень нравится эта идея. Когда вы говорили о фильтрации, предлагали ли вы загружать ВСЕ данные и затем отфильтровывать их? Я спрашиваю, потому что у нас много данных, и если я не разобьюсь, я чувствую, что это окажет огромное влияние на производительность. Это то, что делается часто? Хотя, я не уверен, действительно ли мой образ мышления. –

+1

это зависит от вас, как это сделать. Я думаю, что все борются с данными. мой предпочтительный метод - это страница данных - так что вы получаете только 50 записей за раз. затем позвольте пользователям сортировать (удаленный сортировать), фильтровать его - либо через плагины фильтров, либо с помощью специальных методов фильтрации (например, в примере) и, наконец, искать его. другие любят бесконечную прокрутку (через буферизованное хранилище). В любом случае, какова точка разбрызгивания записей 5K на странице? Никто не может поглотить его каким-либо значимым образом. – dbrin

+0

Touché. Спасибо за помощь. –

2

Сетка имеет способ bindStore. Если вам также нужно назначить другой набор столбцов - отметьте reconfigure метод

+0

Да, это также хороший способ пойти. +1 Еще одна мысль состоит в том, чтобы использовать макет карты и показывать ту же сетку, которая связана с 3 различными магазинами. Это приведет к более быстрому переключению между тремя состояниями, а затем повторной выборке данных и повторной настройке представления. – dbrin

Смежные вопросы