У меня есть Djo Datagrid, связанный с JsonRestStore с включенным ClientFilter. поведение я хочу:Dojo JsonRestStore и ClientFilter никогда не обновляется с сервера
Каждый раз, когда я вызываю фильтр на DataGrid, магазин должен выполнить запрос локально и обновлять сетку. Между тем он также должен отправить тот же запрос на сервер, добавив данные, которые он получает клиенту. отфильтрованные данные.
Документация ClientFilter, по-видимому, говорит, что именно так оно и должно работать. Это поведение я получаю:
сетке данных загружает данные с сервера один раз, в соответствии с начальных настроек фильтра. Любые дополнительные вызовы только для datagrid.filter фильтруют данные на клиенте. Больше никаких вызовов XHR на сервер не отправлено .
Я провел часы отладки ClientFilter.js, ища ошибку, но не могу ее найти. Что я делаю не так?
EDIT: Я хочу поставить это здесь так, надеюсь, кто-то ищет подобную информацию тоже не застрянет. Известны проблемы с ClientFilter и JsonRestStore. Смущенный всей старой документацией в Интернете, я использовал dojo.data.JsonRestStore Это старый и неподдерживаемый (?) Магазин. Теперь Dojo перешел в новый API ObjectStore. Ближайший магазин реализации этого нового API является dojo.store.JsonRest и функциональность ClientFilter обеспечивается dojo.store.Cache
Что я хочу, скажу, что я фильтрую в зависимости от даты создания. Если я уменьшу фильтр, он должен фильтровать на стороне клиента и передать его мне, но если я увеличу диапазон фильтра, он должен получить больше результатов от сервера. Разве это не что-то довольно рутинное? – navjotk
Объяснение варианта использования немного больше: я фильтрую два поля fromDate и toDate. Первоначально fromDate = 2012-01-20 и toDate = 2012-01-24. Это дает мне соответствующие результаты с сервера. Теперь, если я изменил fromDate на 2012-01-21, магазин фильтрует набор данных на клиенте и показывает результаты. Это требуется поведением. Если я изменил fromDate на 2012-01-19, ожидаемое поведение будет состоять в том, чтобы магазин запрашивал больше данных с сервера. Вместо этого хранилище просто возвращает все данные, которые он имеет в кеше (который не включает данные для 19-го числа). – navjotk