Проблемы: у меня есть комбинированный список с включенной функцией автозаполнения (minchars = 2), также установите forceSelection = true. После того, как я выполнил поиск в поле со списком, например, введя «abc» в поле со списком, в списке будут показаны только записи, содержащие строку «abc». Строка запроса, которую хранилище данных отправляет на сервер, содержит параметр: «query: abc». Каждый раз, когда я вызываю «combo.getStore.reload ()», параметры «query: abc» будут включены в запрос. Таким образом, когда я вызываю combo.setValue («def»), это не будет иметь никакого эффекта, потому что хранилище данных комбинированного списка теперь содержит только запись, в которой есть «abc». Я попытался очистить параметры «запроса» из хранилища данных, вызвав: delete combo.lastQuery
или удалить дополнительные параметры из прокси, удалить фильтры из хранилища, ни один из них не сработал.
Тестовый код здесь: воспроизведениешаги:
- настроить хранилище данных для запроса удаленного сервера, сервер вернет
- установите значение комбо на «def», используя «кнопку установки значения комбо» и «test_text»"текстовое поле, комбо-значение будет успешно установлено
- выполните поиск в поле со списком, введите" abc ", тогда запрос вернет только 2 записи:
- выберите любого из них
- повторите шаг 2, чтобы установить для комбинированного значения значение "def", значение не будет установлено, поскольку хранилище данных несодержит «def».
Вопрос: как удалить параметр «запрос» для восстановления хранилища данных, чтобы оно запрашивало все значения?
{
fieldLabel: 'Test Text',
name: 'test_text',
xtype: 'textfield',
allowBlank: true
},
{
xtype: 'button',
text: 'set combo value',
handler: function () {
var text_field = this.up('form').down('textfield[name=test_text]');
var combo_test = this.up('form').down('combo[name=test_combo]');
combo_test.setValue(text_field.getValue());
}
},
{
xtype: 'button',
text: 'reload store',
handler: function () {
var combo_test = this.up('form').down('combo[name=test_combo]');
delete combo_test.lastQuery;
combo_test.getStore().reload();
}
},
{
fieldLabel: 'Test Combo',
name: "test_combo",
xtype: 'combo',
forceSelection: true,
minChars: 2,
allowBlank: false,
store: Ext.create('Ext.data.Store', {
proxy: {
type: 'ajax',
url: pcia.Globals.backendURL('/counterparty/broker/list_physical'),
reader: {
type: 'json',
rootProperty: 'records',
totalProperty: 'count'
}
}
}),
displayField: 'name',
valueField: 'name',
}