如何覆盖extJS网格过滤器

问题描述 投票:0回答:1

我正在创建一个新的项目,我正在使用Grid。

这是我的网格。

Ext.define('myProj.view.base.grid.myGrid', {
    extend: 'Ext.grid.Panel',
    alias: 'widget.myGrid',
    controller: 'myProj-controller-base-grid-myGridcontroller',
   requires: [
        "myProj.controller.base.grid.myGridcontroller",
        'Ext.grid.feature.Grouping',
        'Ext.grid.plugin.BufferedRenderer',
        'Ext.grid.filters.Filters',
    ],
    mixins: ['Deft.mixin.Injectable'],
    inject: ["gridStore"],
    config: {
        gridStore: null,
    },
    emptyText : "No data available",
    plugins: {
        gridfilters: true
    },
    overflowY: 'auto',
    width:'100%',
    stripeRows: false,
    columnLines: false,
    selModel: {
        selType: 'checkboxmodel',
        mode: 'SINGLE',
        allowDeselect: true
    },  
   initComponent: function () {
        let _this=this;
        Ext.apply(this, {
            store: this.getListGridStore(),
        });
        this.callParent(arguments);
    }
});

现在我想覆盖我的过滤器。我已经写好了我的覆盖代码,我看了很多例子,但我不知道如何连接这两个代码。任何帮助将是有用的。

我想在这里放置的覆盖代码是这样的。

Ext.override(Ext.grid.filters.filter.List, {
    createMenuItems: function (store) {
        debugger;
    }
});
javascript extjs overriding extjs6
1个回答
0
投票

我相信覆盖是有效的,但是 createMenuItems 函数没有被调用。

你为每一列定义了过滤器吗?如图所示的代码示例 此处.

{
    dataIndex: 'rating',
    text: 'Rating',
    width: 75,
    filter: {
        type: 'list',
        value: 5
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.