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