Фильтрация в ExtJS - PullRequest
       32

Фильтрация в ExtJS

0 голосов
/ 19 сентября 2018

Я фильтрую хранилище в extjs, используя этот код:

var date = this.getValue();
Ext.data.StoreManager.lookup('krankmeldungstore').clearFilter(true);
Ext.data.StoreManager.lookup('krankmeldungstore').filterBy(
    function(rec) {
        var datum_von_grid = rec.data.datum_von_grid.split(".");
        var datum_von_year = parseInt(datum_von_grid[2]);
        if (datum_von_year === date) {
            return true;
        } else {
            return false;
        }
    }, this);
Ext.data.StoreManager.lookup('krankmeldungstore').load();

Пока все хорошо, проблема у меня не имеет значения, если функция возвращает true или false, сущностьвсе еще оставайтесь в моем магазине.

Спасибо за вашу помощь, Даниэль

1 Ответ

0 голосов
/ 19 сентября 2018

Ext.getStore ('xxx'). FilterBy () работает локально с данными, полученными из прокси.Так что, если вы запустите Ext.getStore ('xxx'). Load () или Ext.getStore ('xxx'). Reload () , это приведет к стиранию локальных отфильтрованных данных с помощьюданные, полученные с сервера.

Вы также можете использовать Ext.getStore ('xxx'). load ({params: {'param1': 'value1'}}) , чтобы сделатьфильтрация со стороны сервера.

Теперь обратите внимание, что если вы хотите использовать те же самые параметры снова, вы можете просто вызвать Ext.getStore ('xxx'). reload () и теперь эторавно Ext.getStore ('xxx'). load ({params: {'param1': 'value1'}}) .Но если вы используете Ext.getStore ('xxx'). Load () , это похоже на то, что вы не отправляете никаких параметров на сервер.

Наконец сначала вы должны использовать Ext.getStore ('xxx'). Load ({params: {'param1': 'value1'}}) или Ext.getStore ('xxx').load () , чтобы получить данные с сервера, а затем с помощью filterBy применить локальный фильтр к полученным данным.

Примечание: я предполагаю, что вы используете ajax или остальные прокси, а не локальныепрокси

...