Javascript ExtJS4将自定义过滤器添加到使用重新配置方法的GridPanel

Javascript ExtJS4将自定义过滤器添加到使用重新配置方法的GridPanel,javascript,extjs,filter,grid,extjs4,Javascript,Extjs,Filter,Grid,Extjs4,我正试图用我需要为网格实现的功能来解决一个问题。这个网格应该使用一个从“Ext.ux.grid.FiltersFeature”扩展而来的自定义“filter”,这个组件工作得很好,因为它适用于我实现的其他网格。问题是,我现在想要实现的网格并不像我之前实现的那样,在第一时刻加载它的列;这个网格有一个控制器,它使用“重新配置”方法基于“存储”创建列 例如: grid.reconfigure(store, cols); 我已经看到了很多关于如何添加单个过滤器的例子,等等,但是它们使用了“ftype:

我正试图用我需要为网格实现的功能来解决一个问题。这个网格应该使用一个从“Ext.ux.grid.FiltersFeature”扩展而来的自定义“filter”,这个组件工作得很好,因为它适用于我实现的其他网格。问题是,我现在想要实现的网格并不像我之前实现的那样,在第一时刻加载它的列;这个网格有一个控制器,它使用“重新配置”方法基于“存储”创建列

例如:

grid.reconfigure(store, cols);
我已经看到了很多关于如何添加单个过滤器的例子,等等,但是它们使用了
“ftype:”filters“
,我确实需要使用我的
“ftype:mycustomfilter”
。关于如何做到这一点,我有什么想法吗?我尝试了所有方法,但似乎都不起作用,对此我感到困惑

以下是我的一些代码:

控制器中的部分代码:

 if (refreshGrid) {
        var cols = this.createGridColumns();
        //This is the method that loads my column based on the store 
        //(which I retrieve from Ajax request)
        grid.reconfigure(store, cols);
        oldStore.destroyStore();
    } else {
        this.mergeFn.call(this, values, store);
        grid.view.refresh();
    }
我尝试在重新配置网格后添加一个功能:

grid.reconfigure(store, cols);
//Then I add this portion of code:
grid.features = [{
  ftype: 'customfilterfeature',
  autoReload: false,
  local: true,
  filters: [{type: 'list', dataIndex: 'activity'},
            {type: 'list', dataIndex: 'datetime'}]  
  }]

有人知道我该如何实现这一点吗?因为这根本不起作用,所以没有显示过滤器。如果有任何帮助,我们将不胜感激。提前感谢。

我们必须在多个网格上执行此操作

我们从Ext.ux.grid.filter.filter进行扩展,然后在列的基础上使用这些过滤器,而不是网格本身。这样,每一列都可以指定它们所需的过滤器,每次重新配置网格时都会更改这些过滤器

只需要在控制器中使用筛选器类扩展,您可以这样使用它:

var columnsDef: [
    { text: 'Column Name', dataIndex:'foo', filter: { type: 'yourCustomFilterAlias'}},
    ...
];

grid.reconfigure(store, columnsDef);
在此之后,只需重写自定义筛选器类中的正确方法


希望这能有所帮助。

非常感谢您的回答,但由于我使用的是Sencha ExtJS 4.2,因此“filter”属性并不适用于每一列。无论如何,感谢您的方法,我将继续尝试。您好。您找到解决方案了吗marcelo?