Заставить хранилище загружать только те значения, которые не выделены внутри Multiselect combo selection-EXTJS - PullRequest
0 голосов
/ 21 сентября 2018

Я использую EXTJs 3.4, и у меня возникает проблема с загрузкой мультикомбо-значений, на странице ON EDIT. Я хочу проверить, какие значения были выбраны внутри множественного выбора, и не загружать эти значения в выпадающих меню.

как показано ниже, опция «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 голосов
/ 21 сентября 2018

Шаги

  1. получить выбранные значения из комбинированного списка

  2. через выбранные значения и использовать store.find как

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

где idx - индекс первой соответствующей записи в хранилище

Получить запись, используя указанный выше индекс

var removeRecord = store.getAt(idx);

Теперь удалите сопоставленную запись из хранилища

store.remove(removeRecord);

...