选择行Ext.dataview,基于门店的列表

axkjgtzd  于 2022-09-26  发布在  其他
关注(0)|答案(1)|浏览(120)
Ext.create('Ext.data.Store', {
    fields: ['id', 'name'],
    storeId: 'modules',
    data : [
        {"id":"0", "active": "1", "label": "RST", "name":"строка 1"},
        {"id":"1", "active": "0", "label": "KAS", "name":"строка 2"},
        {"id":"2", "active": "1", "label": "UKR", "name":"строка 3"},
        {"id":"3", "active": "0",  "label": "KJV", "name":"строка 4"},
    ]
});

在项中:

{
                        xtype: 'list',
                        store: 'modules',
                        mode: 'MULTI',
                        queryMode: 'local',
                        fullscreen: true,
                        margin: '10 10 10 10',
                        itemTpl: '<div class="contact">{id} <b>{label}</b> {name}</div>'
}

如何根据Store中的资产索引“active”选择“List”中的特定行?
加载时,第一行和第三行应突出显示(选中)
这可以基于XTemplate实现吗?

7z5jn7bk

7z5jn7bk1#

XTemplate用于自定义显示列表中的行。对于选择,您需要在循环中的列表上使用setSelection方法,该循环将获取具有active=="1"的所有记录。检查以下代码,这里还有一个提琴显示它在工作:

Ext.application({
    name: 'Fiddle',
    launch: function () {
        let store = Ext.create('Ext.data.Store', {
            fields: ['id', 'name', 'active', 'label'],
            data: [{
                "id": "0",
                "active": "1",
                "label": "RST",
                "name": "строка 1"
            }, {
                "id": "1",
                "active": "0",
                "label": "KAS",
                "name": "строка 2"
            }, {
                "id": "2",
                "active": "1",
                "label": "UKR",
                "name": "строка 3"
            }, {
                "id": "3",
                "active": "0",
                "label": "KJV",
                "name": "строка 4"
            }, ]
        });

        let list = Ext.create({
            xtype: 'list',
            store: store,
            mode: 'MULTI',
            queryMode: 'local',
            fullscreen: true,
            margin: '10 10 10 10',
            itemTpl: '<div class="contact">{id} <b>{label}</b> {name}</div>',
            renderTo: Ext.getBody(),
        });

        store.each(function (record, id) {
            if (record.get('active') == "1") {
                list.setSelection(record);
            }
        });
    }
});

相关问题