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
фильтрация.