Я думаю, вам придется использовать магазин комбо для этого.Комбинации имеют приватный метод findRecord
, который будет выполнять простой поиск в магазине по свойству и значению.Вы можете увидеть пример в самом исходном коде (строка 1119 Combo.js).
1) На основании этого вы можете найти выбранный индекс следующим образом:
var v = combobox.getValue();
var record = combobox.findRecord(combobox.valueField || combobox.displayField, v);
var index = combobox.store.indexOf(record);
2) Или выможет связать себя с событием "select", которое запускается с помощью комбо, выбранной записи и ее индекса в качестве параметра.
3) Вы также можете получить доступ к представлению getSelectedIndexes (), но я сомневаюсь, что это хорошее решение(в этом я не уверен, что он доступен постоянно)
Наконец, если вы хотите расширить объект комбинированного списка, я думаю, что это должно работать (если вы выберете первое решение):
Ext.override(Ext.form.ComboBox({
getSelectedIndex: function() {
var v = this.getValue();
var r = this.findRecord(this.valueField || this.displayField, v);
return(this.store.indexOf(r));
}
});