dgrid / dstore / Rest - Как добавить дополнительные параметры запроса к запросу

Я использовал более старую версию dgrid (onDemandGrid) вместе с додзё JsonRestStore.

На моей веб-странице есть несколько полей ввода (например, дата, имя и т. Д.). После изменения одного из этих полей я изменяю запрос сетки:

grid.setQuery ({y: год, m: месяц, l: имя1, d: флаг, e: имя2});

и запрос Json был чем-то вроде ?y=2015&m=5&l=test1&....

Я узнал, что с реальной версией dgrid это больше невозможно.

Возможно ли что-то похожее с dgrid/dstore.? Фильтрация, кажется, не вариант, насколько я понял, это только на стороне клиента, и я не могу загрузить все свои данные. Что мне нужно, это некоторые динамические параметры для фильтрации данных на сервере.

1 ответ

Решение

dstore эквивалентно dojo/store/JsonRest является dstore/Rest (однако, если у вас нет совместимого REST API на сервере, вы можете использовать dstore/Request).

dstore-х filter Метод позволяет делать произвольные запросы. Он возвращает коллекцию с сохраненными примененными фильтрами, чтобы они могли быть включены всякий раз, когда fetch или же fetchRange называется.

var store = new Request({ target: '/path/to/service' });
var filteredCollection = store.filter({ y: 2015, m: 5 });
filteredCollection.fetch();

приведет к следующему HTTP-запросу:

/path/to/service?y=2015&m=5

Чтобы использовать эту функцию с dgrid 0.4, вы должны назначить отфильтрованную коллекцию экземпляру сетки (а dgrid будет обрабатывать вызовы). fetch/fetchRange как необходимо):

grid.set('collection', store.filter({y: year, m: month}));

dgrid 0.4 и dstore вносят существенный сдвиг в взаимодействие сетки с магазином. В dgrid 0.3 сетка играла гораздо более активную роль в управлении состоянием запросов хранилища - с dgrid 0.4 это уже не так (следовательно, удаление setQuery метод). В dgrid 0.4 это код, внешний по отношению к сетке, для реализации логики, связанной с фильтрацией данных хранилища. В то время как в dgrid 0.3 вы обычно устанавливаете сетку store собственность один раз и вызов setQuery всякий раз, когда вам нужно отфильтровать данные, с помощью dgrid 0.4 вы устанавливаете collection свойство в любое время, когда вам нужно обновить фильтрацию. dstore-х Request store позволяет настроить имена параметров для range а также sort фильтрация.

Другие вопросы по тегам