2013-02-22 81 views
0

我有一個ExtJS網格,它具有一個過濾和遠程排序的存儲。這些請求使用PHP在服務器端處理。啓用/禁用「刪除過濾器」按鈕,具體取決於grid.store的活動遠程過濾器。

我還在網格的工具欄中有一個按鈕,用於刪除使用entryGrid.filters.clearFilters()函數的商店中的篩選器。

我想啓用/禁用此按鈕取決於商店中是否有任何活動的過濾器。因此,當第一次加載de store(沒有任何過濾器)時,該按鈕被禁用。

所以我想到了將一個監聽器放在store.load函數上。

什麼是最乾淨的方式來檢查是否有任何過濾器活躍,如果這確實是可能的?

我搜索網,存儲和過濾器手動(http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.Store),但找不到任何參考..

在此先感謝

回答

0

我不知道,如果你使用的聽衆已經嘗試過,但我會這樣做(在商店裏):

listeners: { 
    load: function(){ 
     if(!this.isFiltered()) 
     { 
      //<add actions to disable the button> 
     } 
    } 
} 
+0

我不確定isFiltered()是否適用於遠程過濾。 – 2013-02-22 15:43:34

+0

即使確實有一個過濾器處於活動狀態,this.isFiltered()仍會返回false。 – Lubje 2013-03-06 13:13:55