Как очистить магазин и обновить панель инструментов подкачки? - PullRequest
15 голосов
/ 15 сентября 2011

Мне нужно сбросить параметры панели инструментов подкачки как "page", "start", "limit", когда я нажимаю кнопку поиска, чтобы заново загрузить сеточное хранилище с другими параметрами!

как я могу это сделать?

проблема в том, что когда я нахожусь на следующей странице, и я делаю новый поиск, у меня есть параметры page=2, start=25, limit=25 dirty, вместо этого мне нужно сбросить эти параметры.

мой код:

listeners: {
    click: function(){
        Ext.getCmp('GrlGio').getStore().removeAll();
        Ext.getCmp('GrlGio').store.load({
                params:{
                  mode: "RIC",
                  DataRicerca: dd,
                  Pit: Ext.getCmp('cmbPiattaforma').getValue()
                }
        });
    }
 }

спасибо!

Ответы [ 11 ]

13 голосов
/ 31 января 2013

В Ext 4 я обнаружил, что loadPage () довольно хорошо работал для сброса хранилища данных и возврата панели инструментов подкачки на первую страницу.Пример:

store.loadPage(1) // note: 1-based, not 0-based
6 голосов
/ 15 сентября 2011

вы можете вручную сбросить параметры

Ext.getCmp('GrlGio').getStore().getProxy().pageParam =1;
Ext.getCmp('GrlGio').getStore().getProxy().startParam =0;

и затем выполнить загрузку магазина.Я знаю, что это выглядит жестко, но это единственное решение, которое я нашел ...

5 голосов
/ 15 сентября 2011

Попробуйте это -

pagingToolbar.moveFirst();
4 голосов
/ 29 сентября 2014

Ребята currentPage = 1 сделали свое дело для меня

перед загрузкой магазина каждый раз, когда звоните ниже. Кстати, я получаю 500 результатов и загрузка в кэш. Разбиение на страницы для локального, любой способ попробовать этоперед любым новым поиском

                        var store = Ext.getStore('MyStoreS');
                        store.proxy.extraParams = { employeeId : searchStr};

                        store.currentPage = 1;

                        store.load();
4 голосов
/ 22 августа 2012

Я знаю, что это старый пост, но я думал, что добавлю в свою работу пенни. Я использую EXTJS 4 и у меня была похожая проблема. Когда я делал новый поиск, номер страницы и т. Д. Не сбрасывался. Я нашел решение, которое, похоже, автоматически работает с панелью навигации, использует атрибут currentPage магазина. У меня есть небольшая странная настройка, но выполнение this.currentPage = 1, когда я делаю новый поиск, работает нормально для меня

4 голосов
/ 16 апреля 2012

Определите следующую функцию "resetStartParam", переопределив ext.data.store:

Ext.override(Ext.data.Store, {

            resetStartParam:function(){

                //get the latest store options
                var storeOptions=this.lastOptions;

                if(storeOptions!=undefined){

                    //get the param names
                    var pn = this.paramNames;

                    //get the params from options
                    var params=storeOptions.params;

                    //change the param start value to zero
                    params[pn.start] = 0;

                    //reset options params with this new params
                    storeOptions.params=params;

                    //apply this new options to store options
                    this.storeOptions(storeOptions);
                    }
                }
    });

Теперь вызывайте эту функцию по нажатию кнопки поиска:

Ext.getCmp('GrlGio').getStore().resetStartParam(); 

Вот так.Это должно работать.

3 голосов
/ 13 ноября 2013

просто вызовите pagingToolbar.onLoad () после removeAll ().Просто и понятно.

3 голосов
/ 31 июля 2013

попробуйте это в вашем обработчике

Ext.getCmp('gridpanel').getStore().removeAll();
Ext.getCmp('PagingToolbar').moveFirst();

после этого, поместите ваш поисковый запрос и соответственно загрузите магазин

Ext.getCmp('gridpanel').getStore().load({params : { start : 0, limit : maxRecords, searchText : _searchText } });

надеюсь, это поможет

2 голосов
/ 01 февраля 2012

Вот как я добился поиска с помощью пейджинга.Он выполняет только 1 запрос и обновляет данные подкачки.

onExecuteSearch: function(){
  var params = this.getSearchForm().getForm().getFieldValues()
      , proxy = this.getSomeGrid().getStore().getProxy();

  proxy.extraParams = params;
  this.getPagingToolbar().moveFirst();
}

getFieldValues ​​() документация: http://docs.sencha.com/ext-js/4-0/#!/api/Ext.form.Basic-method-getFieldValues

Подробнее о прокси "extraParams" смотрите здесь: ExtJs4- Сохранить свойство конфигурации baseParams?

1 голос
/ 08 марта 2017

Это прекрасно работает (обновите информацию о подкачке):

    myStore.removeAll();

    myStore.fireEvent('load', myStore, [], {});
...