如何防止在ExtJs Sencha 标记域中同时选择多个标记?

qzlgjiam  于 2022-11-05  发布在  其他
关注(0)|答案(2)|浏览(159)

如何防止在ExtJs Sencha 标记域中同时选择多个标记?我还希望只选择一个标记,并且一旦选择了该元素,该元素将保持选中状态。当我设置multiSelect时:false如果我在控件中插入新元素,我会收到一条错误消息。
这是一个简单的例子。如果你按下shift键,你可以选择多个。我只想选择一个。

Ext.application({
    name : 'Fiddle',

    launch : function() {
        var shows = Ext.create('Ext.data.Store', {
            fields: ['id','show'],
            data: [
                {id: 1, show: 'Tag 1'},
                {id: 2, show: 'Tag 2'},
                {id: 3, show: 'Tag 3'}
            ]
        });

        Ext.create('Ext.window.Window', {
            //renderTo: Ext.getBody(),
            title: 'Tagfield Test',
            height: 200,
            width: 500,
            layout: 'fit',
            items: [{
                xtype: 'tagfield',
                fieldLabel: 'Pick a tag',
                store: shows,
                displayField: 'show',
                valueField: 'id',
                queryMode: 'local',
                filterPickList: true,
                minWidth: 300,
                maxWidth: 200,
                maxHeight: 10
            }]
        }).show();
    }
});

https://fiddle.sencha.com/#view/editor&fiddle/38o7
Two tags selected at the same time

laik7k3q

laik7k3q1#

在标记域上添加配置...
多重选择:假的
https://docs.sencha.com/extjs/7.2.0/classic/Ext.form.field.Tag.html#cfg-multiSelect

efzxgjgh

efzxgjgh2#

在呈现tagField后更改选择模型模式:

Ext.application({
    name : 'Fiddle',

    launch : function() {
        var shows = Ext.create('Ext.data.Store', {
            fields: ['id','show'],
            data: [
                {id: 1, show: 'Tag 1'},
                {id: 2, show: 'Tag 2'},
                {id: 3, show: 'Tag 3'}
            ]
        });

        Ext.create('Ext.window.Window', {
            //renderTo: Ext.getBody(),
            title: 'Tagfield Test',
            height: 200,
            width: 500,
            layout: 'fit',
            items: [{
                xtype: 'tagfield',
                fieldLabel: 'Pick a tag',
                store: shows,
                displayField: 'show',
                valueField: 'id',
                queryMode: 'local',
                filterPickList: true,
                minWidth: 300,
                maxWidth: 200,
                maxHeight: 10,
                // Change selection model mode after render.
                listeners: {
                    afterrender: function(tagField) {
                        tagField.selectionModel.setSelectionMode('SINGLE');
                    }
                }
            }]
        }).show();
    }
});

相关问题