extjs Ext JS 6.2.0:网格筛选器中列表项的排序

68de4m5k  于 2023-08-04  发布在  其他
关注(0)|答案(1)|浏览(138)

我指的是 Sencha 的Ext.grid.filters.filter.List文档。如果运行代码并打开“评级”列的过滤器,则过滤器值不是按自然升序排列,而是按时间顺序排列。

需要执行哪些操作才能更改此设置并使值按升序排列(1、2、3、4、5)?

w6lpcovy

w6lpcovy1#

在将筛选器值应用于列的筛选器之前,可以按升序手动对筛选器值进行排序。在下面的代码中,ratingValues数组是通过从存储中收集唯一的“rating”值并使用sort()方法对它们进行升序排序来生成的。排序后的数组将作为选项属性传递到'Rating'列的筛选器配置中。这可确保渲染栅格时,过滤器值将按升序显示。

Ext.application({
    name: 'Fiddle',

    launch: function () {
        var shows = Ext.create('Ext.data.Store', {
            fields: ['id', 'show', 'rating'],
            data: [{
                id: 0,
                show: 'Battlestar Galactica',
                rating: 2
            }, {
                id: 1,
                show: 'Doctor Who',
                rating: 4
            }, {
                id: 2,
                show: 'Farscape',
                rating: 3
            }, {
                id: 3,
                show: 'Firefly',
                rating: 4
            }, {
                id: 4,
                show: 'Star Trek',
                rating: 1
            }, {
                id: 5,
                show: 'Star Wars: Christmas Special',
                rating: 5
            }]
        });
        
        var ratingValues = shows.collect('rating', false, true).sort();
        
        Ext.create('Ext.grid.Panel', {
            renderTo: Ext.getBody(),
            title: 'Sci-Fi Television',
            height: 250,
            width: 350,
            store: shows,
            plugins: 'gridfilters',
            columns: [{
                dataIndex: 'id',
                text: 'ID',
                width: 50
            }, {
                dataIndex: 'show',
                text: 'Show',
                flex: 1
            }, {
                dataIndex: 'rating',
                text: 'Rating',
                width: 75,
                filter: {
                    type: 'list',
                    options: ratingValues,
                }
            }]
        });
    }
});

字符串


的数据

相关问题