ExtJS 6.2:为网格列创建自定义过滤器

时间:2016-12-15 13:59:37

标签: extjs filter grid extjs6

我想为我的网格列创建一个自定义过滤器。

我试过了:

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);
  }

});

1 个答案:

答案 0 :(得分:3)

要添加新的过滤器类型,您必须定义从Ext.grid.filters.filter.Base或其后代扩展的新类(就像您所做的那样)。

选中simple example

此外,您还可以查看现有过滤器代码,了解如何添加自定义菜单或过滤规则,例如Ext.grid.filters.filter.String基于Ext.grid.filters.filter.SingleFilter

相关问题