2015-05-11 3 views
0

Я использовал старую версию dgrid (onDemandGrid) toghether с доджо JsonRestStore.dgrid/dstore/Rest - Как добавить дополнительные параметры запроса для запроса

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

grid.setQuery ({y: year, m: month, l: name1, d: flag, e: name2});

и запрос Json был Somthing как ? У = 2015 & м = 5 & л = test1 & ....

я узнал, что с фактической версии dgrid это ISN Это возможно.

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

ответ

3

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

Метод dstore's 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 вы обычно устанавливаете свойство сетки за один раз и звоните setQuery всякий раз, когда вам нужно отфильтровать данные, с dgrid 0.4 вы устанавливаете свойство collection в любое время, необходимое для обновления фильтрации. В магазине dstore Request вы можете настроить имена параметров для фильтрации range и sort.