2015-09-23 39 views
1

我已經使用的功能 - 過濾器的GridPanel,使用本地設置爲true,像這樣ExtJS的:網格過濾器複選框 - 取消選中不刪除的過濾器

  ftype: 'filters', 
      local: true  

應用過濾器,並在文本框會自動嘗試啓用過濾器複選框,網格被過濾。

取消選中過濾器旁邊的複選框不會刪除過濾器,複選框會消失,但網格仍顯示過濾的記錄。

如果我刪除文本字段中的所有內容,則會顯示所有記錄。

我錯過了什麼?有人看到這個問題?

在此先感謝。

**編輯**

這裏是一個列,商店和模型的例子。我只包含了一個公司領域,模型和商店項目的例子......當網格被填充並且過濾器第一次工作時,商店確實工作,但是然後我無法移除過濾器。

var columns = [{ 
      header: 'Company', 
      minWidth: 200, 
      dataIndex: 'company', 
      stateId: 'company-stateid', 
      draggable: false, 
      flex: 10, 
      sortable: true, 
      doSort: oMe.performSort, 
      filter: 
      { 
       type: 'string' 
      } 

Ext.define('APEX.model.CompanyModel', { 
    extend: 'Ext.data.Model', 
    fields: [ 
     {name:'company', sortType:Ext.data.SortTypes.asUCString}, 

Ext.define('APEX.store.Company', { 
    extend: 'Ext.data.Store', 
    model: 'APEX.model.CompanyModel', 

Ext.apply(me, { 
      store: mainStore, 
      columns: columns, 
      selModel: { 
       selType: 'rowmodel' 
      }, 
+0

您取消選中手工盒,或以編程方式? –

+0

手動,默認,沒有任何更改。使用extjs 4.2。 – Martin

+0

我無法複製它,至少沒有這些信息。在簡單的網格上,通過在文本字段中啓用過濾器功能,刪除複選框完全可以爲我刪除過濾器。商店,列或網格的配置中必須存在問題。也許更多的代碼可以幫助。 –

回答

0

我以前有一個像你這樣的問題,我解決了使用此配置:

//This is my model, you can use type if your field not a string... 
Ext.define('EKOJS.model.m_mst_pemohon', { 
    extend: 'Ext.data.Model', 
    alias  : 'widget.mst_pemohonModel', 
    fields  : [{name: 'id_pemohon',type:'int'},'NIP','Nama_Pemohon','Telp','Email'], 
    idProperty : 'id_pemohon' 
}); 

//this is my column in the grid 
this.columns = [ 
{ 
    header: 'id_pemohon',filterable:true, 
    dataIndex: 'id_pemohon',hidden:true 
},{ 
    header: 'NIP',filterable:true, 
    dataIndex: 'NIP' 
},{ 
    header: 'Nama_Pemohon',filterable:true, 
    dataIndex: 'Nama_Pemohon' 
},{ 
    header: 'Telp',filterable:true, 
    dataIndex: 'Telp' 
},{ 
    header: 'Email',filterable:true, 
    dataIndex: 'Email' 
}]; 

// This is for grid filtering feature 
this.features = [{ 
     ftype: 'filters', 
     autoReload: true, 
     encode: false, 
     local: true 
    } 
]; 

如果您的問題,您可以將您的配置改變這一點,不要忘記調整你的模型太:

var feature = [{ 
     ftype: 'filters', 
     autoReload: true, 
     encode: false, 
     local: true 
    } 
]; 

var columns = [{ 
    header: 'Company', 
    minWidth: 200, 
    dataIndex: 'company', 
    stateId: 'company-stateid', 
    draggable: false, 
    flex: 10, 
    sortable: true, 
    doSort: oMe.performSort, 
    filterable:true 

Ext.define('APEX.model.CompanyModel', { 
    extend: 'Ext.data.Model', 
    fields: [ 
     {name:'company', sortType:Ext.data.SortTypes.asUCString}, 

Ext.define('APEX.store.Company', { 
    extend: 'Ext.data.Store', 
    model: 'APEX.model.CompanyModel', 

Ext.apply(me, { 
      store: mainStore, 
      columns: columns, 
      feature: feature, 
      selModel: { 
       selType: 'rowmodel' 
      }, 

希望這有助於你太..:d