Extjs 5在重新配置时动态地向网格添加过滤器

时间:2014-09-26 11:41:43

标签: extjs5

我有一个动态生成的网格

我构建了columns数组并存储,然后在我的网格上调用reconfigure

接下来我创建一个过滤器数组。现在过滤器必须应用于我的网格中的列。

但过滤器没有反映在我的网格中。怎么能实现?

myView.js

Ext.define('myView.view.myView', {
   extend: 'Ext.grid.Panel',
   plugins: 'gridfilters',
   store: 'myStore.store.myStore',
   pageSize:10, 
   dockedItems: [{
      xtype: 'pagingtoolbar',
      store: 'WhiskerPlot.store.settingStore',   // same store GridPanel is using
      dock: 'bottom',
      displayInfo: true
  }],
   filters :[]
});

myController.js

var colFilters = [];
colFilters.push({
                    type : 'list',
                    dataIndex : dummyDataIndex,
                    options : [small,large]
                });      

var filters = {
                    ftype : 'filters',
                    filters : colFilters
            };
var gridview = Ext.ComponentQuery.query('myView')[0];
gridview.reconfigure(store,columnarr);
gridview.filters.addFilters(filters);

1 个答案:

答案 0 :(得分:-1)

将过滤器添加到列数组本身。

复制自:Filters Doc

var grid = Ext.create('Ext.grid.Panel', {
     store: {
         url: 'path/to/data'
     },

     plugins: 'gridfilters',

     columns: [{
         dataIndex: 'id',
         text: 'Id',

         filter: 'number'
     }, {
         dataIndex: 'name'
         text: 'Name',

         filter: {
             type: 'string',
             value: 'Ben'
         }
     }, {
         ...
     }]
});