如何在 extJs 4.1 组合框多选中仅选择两个选项

Posted

技术标签:

【中文标题】如何在 extJs 4.1 组合框多选中仅选择两个选项【英文标题】:how to select only two options in extJs 4.1 combobox multiselect 【发布时间】:2012-09-06 11:25:44 【问题描述】:

我有一些按列描述的代码

cols.offer.push(
    dataIndex: 'tags',
    header : 'Тэги',
    width:150,
    editor : 
        xtype : 'combo',
        store :    gridTagStore,
        queryMode: 'local',
        displayField: 'name',
        //valueField: 'name',
        multiSelect:true,
        typeAhead: true,
        editable:false,
        triggerAction: 'all',
        selectOnTab: true,
        lazyRender: true,
        listClass: 'x-combo-list-small',
        listeners: 
            focus: function(e) 
                this.setValue(this.rawValue.split(', '));
            
        
    
);

所以我只想在组合框中选择两个选项。

如果我选择第三个,我想 - 什么都不会发生


谢谢! 它对我有用!

  cols.offer.push(
    dataIndex: 'show_at_index_as_tag_id',
    header : 'Показывать на главной под тегом',
    width:150,
    editor : 
        xtype : 'combo',
        store :    gridTagStore,
        queryMode: 'local',
        typeAhead: true,
        displayField: 'name',
        selectOnTab: true,
        triggerAction: 'all',
        lazyRender: true,
        valueField: 'id',
        multiSelect:true,
        listClass: 'x-combo-list-small',
        listeners: 
                beforeselect : function()
                    return (this.value.length == 1 && this.value[0] === "") || this.value.length == 0 ;
            
        
    
);

我决定只限制一个选项并使用多选,因为我存储了在其他应用程序中使用的选项。

但是我需要在这个组合中选择空值,所以选择一个选项的多选是很好的解决方案

【问题讨论】:

【参考方案1】:

beforeselect 监听器添加到 ComboBox。在函数中定义 ComboBox 中已经选择了多少项,如果它的计数 > 2 return false;do nothing

【讨论】:

以上是关于如何在 extJs 4.1 组合框多选中仅选择两个选项的主要内容,如果未能解决你的问题,请参考以下文章

强制商店仅加载未在 Multiselect 组合选择-EXTJS 中选择的值

Extjs 4.1 如何选择组合中的第一项

如何在 extjs 4.1 中使用包含图像的组合

EXTJS 4.1 如何在树面板中选择下一个叶节点

ExtJS 4.1:如何在组合框中设置预选项目?

EXTJS 4.1 中的向上组合框