对组合框ExtJs中的字符串特征进行排序

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

我有以下情况
在软件中,商店组合框的特征由客户端定义为字符串,但组合框的类型是:

A 1 一个 11 A2 一个21 一个 3 ...

但是我的客户需要像下面这样的类型 甲 1 A2 A 3 一个 11 21...

我如何从前方威胁获取这些信息并正确排序渲染?

sorting extjs combobox extjs6
1个回答
0
投票

您需要使用排序器功能并根据您的用例更新逻辑,如下所示,

Ext.application({
    name: 'YourApp',
    launch: function () {

        var Store = Ext.create('Ext.data.Store', {
            data: [
                { sampledata: 'A 1' },
                { sampledata: 'A 11' },
                { sampledata: 'A 2' },
                { sampledata: 'A 21' },
                { sampledata: 'A 3' }
            ],
            sorters: [{
                sorterFn: function(item1, item2) {
                    var pattern = /([A-Za-z]+) (\d+)/;
                    var match1 = item1.get('sampledata').match(pattern);
                    var match2 = item2.get('sampledata').match(pattern);
                    var groupComparison = match1[1].localeCompare(match2[1]);
                    if (groupComparison !== 0) {
                        return groupComparison;
                    }
                    var num1 = parseInt(match1[2], 10);
                    var num2 = parseInt(match2[2], 10);
                    return num1 - num2;
                }
            }]
        });

        Ext.create('Ext.form.ComboBox', {
            store: Store,
            displayField: 'sampledata',
            fieldLabel: 'ComboBox',
            renderTo: Ext.getBody()
        });
    }
});
© www.soinside.com 2019 - 2024. All rights reserved.