2

在 ExtJS 4 中,我可以创建一个过滤器来过滤我的网格。当本地设置为false时,我可以过滤我的商店。

var filtersCfg = {
    ftype: 'filters',
    autoReload: false, //don't reload automatically
    local: false, //remote filter
    // filters may be configured through the plugin,
    // or in the column definition within the headers configuration
    filters: [{
        type: 'numeric',
        dataIndex: 'id'
    }, {
        type: 'string',
        dataIndex: 'name'
    }, {
        type: 'numeric',
        dataIndex: 'price'
    }, {
        type: 'date',
        dataIndex: 'dateAdded'
    }, {
        type: 'list',
        dataIndex: 'size',
        options: ['extra small', 'small', 'medium', 'large', 'extra large'],
        phpMode: true
    }, {
        type: 'boolean',
        dataIndex: 'visible'
    }]
};

在 EXTJS 7 中我只能添加一个插件:

plugins: {
         gridfilters: true
    },

如何在 EXTJS 7 中添加远程过滤器。这仍然可能吗?我在文档中找不到任何东西。

此致

编辑:

我正在使用 data.Store 从我的 php/数据库中获取 json。在网格上排序不是问题。但是如何使用过滤器将参数发送到我的 php?

var Store = new Ext.data.Store({
            extend: 'Ext.data.Store',
            autoLoad: true,
            remoteSort: true,
            fields: [
                'columnA','columnB'
            ],
            pageSize : 50,
            proxy: {
                type: 'ajax',
                actionMethods: {
                    create : 'POST',
                    read   : 'POST',
                    update : 'POST',
                    destroy: 'POST'
                },
                url: 'data/URL.php',
                reader: {
                    rootProperty: 'columns',
                    totalProperty: 'totalCount'
                },
                simpleSortMode: true,
                extraParams: {
                    task: 'doFiltering'
                }
            },
        sorters: [{
            property: 'columnA',
            direction: 'DESC'
        }]
    });
4

2 回答 2

1

我找到了解决方案。

我需要将remoteFilter: true添加到我的store。我一直在寻找错误的地方。

这是解决方案:如何在 ExtJS6 中使用本地(内存)存储将过滤器功能应用于分页网格?

谢谢您的帮助。

于 2020-04-22T12:21:32.590 回答
0

在 ExtJS 7 中,您必须将filter配置放入column.

...
    {
        text: 'Email',
        dataIndex: 'email',
        flex: 1,
        filter: {
            type: 'string',
            value: 'lisa'
        }
    },
...

小提琴

于 2020-04-22T11:56:11.440 回答