ExtJS 6.2:为gridcolumn创建自定义筛选器
我想为我的gridcolumn创建一个自定义过滤器 我试过这个:ExtJS 6.2:为gridcolumn创建自定义筛选器,extjs,filter,grid,extjs6,Extjs,Filter,Grid,Extjs6,我想为我的gridcolumn创建一个自定义过滤器 我试过这个: Ext.define('Myapp.grid.filters.filter.Float', { extend : 'Ext.grid.filters.filter.Number', alias : ['grid.filter.float'], type : 'float', config : { serializer : function (f) { return { ty
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
};
}
}
});
然后我尝试在gridcolumn中使用过滤器:
{
header : 'Foo',
dataIndex : 'bar',
filterable : true,
filter : {
type : 'float'
}
}
如何在我的应用程序中创建、添加或注册过滤器到-plugin?我真的不明白
提前谢谢
解决方案:
我们在中使用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);
}
});
要添加新的过滤器类型,您必须定义新的类,扩展自或其子类(就像您所做的那样) 看看这个
此外,您还可以检查现有的过滤器代码,了解如何添加自定义菜单或过滤器规则,例如基于F。它正在工作!非常感谢你。所以我犯的唯一错误是,我指定了错误的名称空间?我真的必须在ext名称空间中定义一个类才能使它工作吗?没有办法在我自己的结构/名称空间中创建一个过滤器并手动将其添加到插件中吗?我认为可以,但必须重写插件代码以接受类/类名,而不仅仅是类型字符串。实际上,应用程序名(Myapp)是视图、控制器模型和存储的名称空间,而插件使用Ext全局对象。我们找到了一个解决方案。您可以使用createFilter函数,该函数未在其文档中列出,但您可以创建插件使用的过滤器。我很快会更新我的问题。