我想为我的网格列创建一个自定义过滤器。
我试过了:
Ext.define('Myapp.grid.filters.filter.Float', {
extend : 'Ext.grid.filters.filter.Number',
alias : ['grid.filter.float'],
type : 'float',
config : {
serializer : function (f) {
return {
type : 'float',
value : f.value,
property : f.property,
operator : f.operator
};
}
}
});
然后我尝试在我的网格列中使用过滤器:
{
header : 'Foo',
dataIndex : 'bar',
filterable : true,
filter : {
type : 'float'
}
}
如何在我的应用程序中为gridfilter - 插件创建,添加或注册过滤器?我真的不明白。
提前致谢
解决方案:
我们使用Ext.grid.filters.filter.Base中的createFilter函数来创建和使用过滤器:
Ext.define('MyApp.foo.bar.FloatFilter', {
extend : 'Ext.grid.filters.filter.Number',
alias : 'grid.filter.float',
createFilter : function (config, key) {
config.type = 'float';
return this.callParent(arguments);
}
});
答案 0 :(得分:3)
要添加新的过滤器类型,您必须定义从Ext.grid.filters.filter.Base或其后代扩展的新类(就像您所做的那样)。
此外,您还可以查看现有过滤器代码,了解如何添加自定义菜单或过滤规则,例如Ext.grid.filters.filter.String基于Ext.grid.filters.filter.SingleFilter。