Поле комбинированного списка EXTJS, не выбирающее valueField после, расширяется

Просто отфильтруйте элементы из filterArray, который содержит оба этих слова

let filterArray = ["Big green bubble", "Red bubble", "A bubble in green", "Small green bubble", "This bubble is green"]
let textString = "green bubble".lowercased()
let words = textString.components(separatedBy: " ")
let results = filterArray.map { [110].lowercased() }.filter { string in words.allSatisfy { string.components(separatedBy: " ").contains([110]) } }

print(results) /* ["Big green bubble", "A bubble in green", "Small green bubble", "This bubble is green"] */
5
задан 16 revs, 3 users 76% 1 March 2009 в 01:29
поделиться

4 ответа

Это, вероятно, потому что при вводе случайных данных в комбинацию они не могут определить местоположение корректного fieldValue каждый раз. Затем это stucks в последнем несуществующем значении.

Попытайтесь установить ComboBox на любое существующее значение (в хранилище данных комбинации) прежде, чем сделать новый setValue () в Вашем datachanged обработчике событий. Или можно попытаться использовать clearValue () метод для сброса предыдущего (неопределенного) valueField.

Там также initList () метод, существующий для сброса комбинации к начальному состоянию.

Править: После некоторого тестирования я нашел что: combo.store.clearFilter (); должен использоваться прежде setValue в обработчике внешних событий.

3
ответ дан 15 December 2019 в 01:12
поделиться

Во-первых, поле комбинированного списка Ext JS должно автоматически применить значение и дисплей, когда объект выбран, запрещая Вы присвоили хранилище и сказали Расширению, что поле требует значения.

Значение, которое Вы, кажется, просите (CompteurCommunes), не появляется в Ваших определениях читателя, таким образом, это была бы часть записей в хранилище данных.

Какова базовая причина того, почему Вы пытаетесь установить это значение для ComboBox?

0
ответ дан 15 December 2019 в 01:12
поделиться

Можно взглянуть на hiddenName и hiddenId параметр Ext.form. ComboBox. Если бы Вы устанавливаете значение скрытого поля формы, связанного с полем комбинированного списка затем, поле комбинированного списка представило бы маркировку того значения вместо самого значения.

Это полезно, когда необходимо установить значение в конце сервера и направить пользователя к странице.

Другой полезный метод является selectByValue. Этот метод выбрал бы элемент, который имеет значение, равное передаваемому аргументу.

В Вашем dataChangedListener вместо того, чтобы установить значение поля комбинированного списка, необходимо установить значение скрытое поле формы, связанное с ComboBox. Также после устанавливания значения скрытого поля Вам, возможно, придется запустить selectByValue метод.

Можно взглянуть на документацию API ExtJS для дальнейшей ссылки.

0
ответ дан 15 December 2019 в 01:12
поделиться
function formatComboBox(value, metaData, record, rowIndex, colIndex, store) {
        myStore = Ext.getCmp('myComboBox');
        myStore.clearFilter();
        var idx = myStore.find('value',value);
        return (idx != '-1') ? myStore.getAt(idx).data.label : value;
}
1
ответ дан 15 December 2019 в 01:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: