У меня есть поле со списком.
Мое требование: всякий раз, когда я набираю какой-либо ключ из комбо, значение этого «ключа» отфильтровывается из хранилища и устанавливается как комбо-значение.
Пример: у меня есть эти значения в выпадающем списке.
'ABC',
«Сокр»,
'Крикет',
'Footbal'
После нажатия на комбо, если я наберу a
, будет установлено значение «ABC» в первый раз, и значение «ABBR» второго типа будет установлено.
Вот код моего комбо.
// The data store containing the list of states
var states = Ext.create('Ext.data.Store', {
fields: ['abbr', 'name'],
data : [
{"abbr":"AL", "name":"Alabama"},
{"abbr":"AK", "name":"Alaska"},
{"abbr":"AZ", "name":"Arizona"}
]
});
// Create the combo box, attached to the states data store
Ext.create('Ext.form.ComboBox', {
fieldLabel: 'Choose State',
store: states,
queryMode: 'local',
displayField: 'name',
valueField: 'abbr',
editable : true,
renderTo: Ext.getBody()
});
Теперь в этом случае, когда я набираю любую клавишу, я получу значение, отфильтрованное из списка. Но я хочу не только фильтровать, я также хочу установить значение.
Вот что я пытаюсь.
listerners:{
keypress : function(me,e,eopts){
var store = me.getStore();
var key = e.event.key;
var data = store.data.items;
var results = [];
for(var i=0; i<data.length; i++){
if(data[i].index(key) == 0){
results.push(data[i]);
}
}
}
}
Теперь здесь все значения, начиная с этого ключа, сохраняются в результате. Но я не знаю, как установить это значение из результата в комбинированное хранилище.
Любая помощь будет с благодарностью.