2017-07-31 136 views
1

我有一個ExtJS 4.1.3網格,但默認過濾器選項被選中,但當網格加載所有網格項時都顯示出來。有沒有更好的方法來定義默認選項?ExtJS默認過濾器激活,但網格沒有過濾

fiddle

代碼

{ 
    text: 'Status', 
    width: 100, 
    dataIndex: 'TopicStateValue', 
    filter: { 
      active: true, 
      type: 'list', 
      value: 'Open/Current', 
      options: ['Open/Current', 'Archived/Closed', 'Hold'] 
      } 
    } 
+0

您確定列配置中是否有「過濾器」選項?根據Sencha文檔(http://docs.sencha.com/extjs/4.1.3/#!/api/Ext.grid.column.Column)Ext.grid.column.Column沒有「過濾」配置值。 – overlordhammer

+0

@overlordhammer過濾器在小提琴中工作 –

+0

您是對的,它不是普通列配置值的一部分,而是Ext.ux.grid.FiltersFeature使用的配置值(http://docs.sencha.com/extjs/4.2 0.3 /#!/ API/Ext.ux.grid.FiltersFeature) – overlordhammer

回答

0

我通過源代碼去,並且濾波器對象不被創建直到首次標題菜單被觸發(懶惰特徵實例化),這意味着您的配置選項在第一次呈現菜單之前不會被應用,並且也意味着t因爲對列功能的引用僅包含當時的配置對象,所以在該時間之前無法手動觸發更新。你可以在this forked version看到你的代碼,初始化方法(它被調用來設置過濾器)僅在列被點擊後被調用。您可以進一步自定義Ext.ux.grid.FiltersFeature組件上的init方法,以便更早地創建過濾器並應用它們。也許你可以嘗試將過濾器應用於商店?

我希望這個答案可以指出你正確的方向來解決你的問題。