Создайте вид «Ext.data.StoreView» из нескольких объектов Ext.data.Store - PullRequest
1 голос
/ 21 октября 2010

Вот чего я хотел бы достичь:

имеют Ext.grid.GridPanel для отображения данных из нескольких хранилищ. Поместите в «термины БД», в основном, показывая, что будет «просмотр» содержимого более чем одного магазина. Преимущество этого подхода по сравнению с использованием средств визуализации ячеек заключается в том, что все столбцы можно сортировать и выполнять поиск.

Чтобы это работало, такой объект, как Ext.data.StoreView, должен быть определен и настроен для извлечения и в конечном итоге преобразования данных из всех задействованных хранилищ и представления их в GridPanel, как если бы это было одно хранилище.

Обратите внимание, что это может пригодиться, даже если просмотренный магазин только один. В качестве примера рассмотрим хранилище с двумя числовыми полями и сеткой, в которой оба поля показаны в соответствующих столбцах, а в третьем столбце показана сумма этих двух полей. Вы можете легко сделать это с помощью средства визуализации ячеек, но вы упускаете возможность сортировки по этому полю. Вы также можете добиться того же, добавив поле «сумма» в свой магазин и поместив туда сумму, но это будет означать репликацию значений плюс все трудности с синхронизацией значения этого поля при каждом обновлении.

Теперь вопрос: кто-нибудь знает, существует ли что-то (даже едва ли) похожее или мне просто нужно это реализовать?

Спасибо!

1 Ответ

1 голос
/ 13 января 2011

Я хочу реализовать нечто подобное, но наоборот: я хочу, чтобы одно и то же хранилище было присоединено к 2 сеткам, но с разными фильтрами для каждой сетки (в ExtJs 3.x фильтрация выполняется на уровне магазина, а несвязанный элемент управления).

Но я хочу, чтобы правки, сделанные в одной сетке, отражались в другой (если элемент соответствует обоим фильтрам), поэтому решил написать класс типа StoreView, который скопировал бы все записи изисходное хранилище (экземпляры записей зависят от хранилища) и прослушивает события в хранилище владельца на предмет изменений, а также применяет любые изменения и т. д. к исходному хранилищу.

Расширение этого будет соответствовать вашим потребностям - иметь такиекласс сможет выступать в качестве представления или прокси в более чем одном магазине.

Я планирую начать писать на следующей неделе, если я не смогу найти его уже - если вы хотите поменять местами заметки / коддай мне знать ...

...