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

时间:2012-09-06 11:25:45

标签: extjs combobox multi-select

我有一些按列

描述的代码
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 ;
            }
        }
    }
});

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

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

1 个答案:

答案 0 :(得分:2)

beforeselect侦听器添加到ComboBox。在函数中定义已在ComboBox中选择的项目数,如果其计数> 2 return false;do nothing