强制商店仅加载在Multiselect组合选择-EXTJS

时间:2018-09-21 01:06:35

标签: extjs extjs3

我正在使用EXTJ 3.4,在加载多重组合值时遇到问题,在“编辑”页面上,我想检查多重选择内已选择了哪些值,而不是在下拉选项中加载这些值。

如下所示,“ SouthIndia”选项在创建项目时已预先加载/保存,因此现在我希望它不会出现在dd中,因为已经选择了它。

有没有办法让我知道要填充哪些值的存储区?

enter image description here

multiselect = new Qx.form.MultiSelectComboBox({
        allowCommaInQuery: true,
        anchor: '0',
        name: "multiselect",
        displayField: 'value',
        valueField: 'value',
        hideRefreshLabel: true,
        refreshable: false,
        mode: 'local',
        emptyText: $L('Select'),
        enableCopyPaste: false,
        anyMatch: true,
        caseSensitive: false,
        width: 170,
        cacheSizes: false,
        hidden: true,
        disabled: true,
        allowBlank: false,
        store: multiComboVpc = new Ext.data.ArrayStore({
            fields: ['value'],
            data: values,
            expandData: true
        })

    }),

    Ext.extend($cls, Panel, {
        afterRender: function() {
            this.multiComboVpc.setValue("SouthIndia") //values coming from server
        }
    });
var values = ["SouthIndia"]

现在在这种情况下,我的下拉列表应该为空,如何实现?

1 个答案:

答案 0 :(得分:0)

步骤

  1. 从组合中获取选定的值

  2. 循环浏览选定的值,并使用store.find作为

var idx = store.find(fieldName, value, [startIndex], [anyMatch], [caseSensitive]);

其中idx是商店中第一条匹配记录的索引

  1. 使用上述索引获取记录

    var removeRecord = store.getAt(idx);

  2. 现在从商店中删除匹配的记录

store.remove(removeRecord);