EXTjs gridfilter: How to clearfilter without reloading store?

后端 未结 4 1829
孤街浪徒
孤街浪徒 2021-01-16 02:03

In extjs GridFilters, is there a way to clear the filters without reloading the store?
This is the rquirement:
There is a grid(#1) and another grid(#2) below the gri

相关标签:
4条回答
  • 2021-01-16 02:04

    have you tried temporarily suspending the events on the grid? grid.suspendEvents(); grid.doYourMagic(); grid.resumeEvents();

    reloading of the store is most likely triggered by an event anyway.

    0 讨论(0)
  • 2021-01-16 02:07

    I've experienced the same issue but not with a Grid but with a DataView, however, this might apply equally to your case. I initially tried:

    var store = this.getStore();
    store.suspendEvents();
    store.clearFilter();
    store.resumeEvents();
    store.filter(...);
    

    this didn't work—still 2 HTTP requests were made, once for clearFilter(), once for filter(...).

    However, the following works:

    var store = this.getStore();
    store.getProxy().extraParams['q'] = keywords;
    store.load();
    
    0 讨论(0)
  • 2021-01-16 02:17

    The clearFilters() method available with GridFilter class should be able to clear the filters. Did you give it a try? Also, when does the grid#2 get loaded? according to your first para, when the user select a manager the employees are listed. But in the second para where you stated your requirement, you said the grid#2 is loaded through another function!.. no clear with that though.

    0 讨论(0)
  • 2021-01-16 02:18

    After some Firebug stepping, I found this works quite well.

    var store = this.getStore();
    store.remoteFilter = false;
    store.clearFilter();
    store.remoteFilter = true;
    store.filter(...);
    

    remoteFilter does not seem to be a documented property, but it will suspend xhr calls while it's set to false.

    When you set remoteFilter to false, when clearFilter() is called, the load() function is stepped over.

    0 讨论(0)
提交回复
热议问题