2013-06-13 85 views
2

我有一个有很多记录的网格。所以我想在每个列标题中添加过滤器以便轻松过滤所需的数据。我看到了sencha文档中给出的例子。但是如何在Extjs 4.2版本中实现它。如何在其中使用UX类?有没有插件可用?如何在extjs的网格列标题中添加过滤器?

我非常感谢你。

请帮帮我。

阿南德

回答

0

一个解决办法是捕捉到“栏中单击”一栏,让你想过滤并把这个过滤器在网格存储功能帕拉姆。

列实施例

{ 
    header  : "email", 
    dataIndex : 'email', 
    listeners : { 
     click: { 
      element: 'el', //bind to the underlying el property on the panel 
      fn: function(){ 
       storeGrid.filter("email", /\.com$/); // email 
          storeGrid.sort('myField', 'ASC'); 
      } 
     } 
    } 
}, 

煎茶过滤:filter store

煎茶排序:sort store data

3

这是一个例子:

Ext.define('Webdesktop.view.admin.List', { 
extend: 'Ext.grid.Panel', 
alias: 'widget.admin_casoslist', 
initComponent: function() { 
    var me = this, 
    filters = { 
     ftype: 'filters', 
     encode: false, 
     local: true 
    }; 

    Ext.apply(me, { 
     title: 'gridTitle', 
     store: List_CasSos_Store, 

     filterable: true, 
     features: [filters], 
     closable: true, // fixme: need to set here, because has no effect in tabpanel defaults configuration 
     autoScroll: true, 
     columns: { 
      items:[ 
      { 
       text: 'header1', 
       filter: { 
        type: 'string' 
       }, 
       flex: 1, 
       dataIndex: 'relation_patron_paraine' 
      },{ 
       text:'header2', 
       filter: { 
        type: 'list', 
        options: ['case4', 'case3', 'case2', 'case1'] 
       }, 
       hidden:true, 
       flex: 1, 
       dataIndex: 'etatsante' 
      },{ 
       text:'header3', 
       filter: { 
        type: 'numeric' 
       }, 
       hidden:true, 
       flex: 1, 
       dataIndex: 'revenumnsuel' 
      } 
      ], 
      defaults : { 
       align: 'center' 
      } 
     } 
    }); 
    me.callParent(); 
} 

在控制研究ER:

uses: [ 
    'Webdesktop.view.admin.List', 
    ... 
    'Ext.ux.grid.FiltersFeature' 
    ] 
+1

如果您需要''Ext.ux.grid.FiltersFeature'' – Aminesrine

+0

如何包括'我的应用程序中的'Ext.ux.grid.FiltersFeature'..? –

+0

编辑过的答案。 – Aminesrine

1

在头的grid你需要声明过滤器的阵列,然后发挥好电网使用的过滤器。然后写

this.filters = new Ext.ux.grid.GridFilters({ 
      filters:this.filter 
     }) ; 

给该

this.plugins = [this.filters]; 

当你添加一个插件栏写

gridEl.filter{ 
     type: 'list', 
     dataIndex: "DATAINDEX", 
     local : local, 
     dataForFilter : data 
    };