Как я могу получить текущую строку в сетке с помощью редактора combobox

У меня есть EditorGridPanel с ComboBox в одном из столбцов.
В прослушивателе событий select для этого ComboBox я хотел бы знать, в какой строке сетки (а не в строке ComboBox) он находится.
Причина заключается в том, что я хотел бы обновлять разные столбцы в сетке каждый раз, когда выбирается элемент.
Я думаю, что я, вероятно, упускаю что-то очевидное.

Спасибо за любую помощь.


person Gerrat    schedule 30.11.2010    source источник


Ответы (3)


Начиная с версии 4.1, может быть лучше использовать вместо этого edit событие сетки. Вы попадаете в событие, которое содержит отредактированную запись.

http://docs.sencha.com/ext-js/4-1/#!/api/Ext.grid.Panel-event-edit

person Chris Farmer    schedule 07.12.2012
comment
что, если я хочу использовать свойство из записи, выбранной в комбинированном списке? Я думаю, что в событии редактирования я могу получить доступ только к displayField и valueField, а не ко всей записи магазина, привязанной к комбо. - person code4jhon; 15.04.2015
comment
Я не понимаю, что ты имеешь в виду. Событие имеет свойство record, которое является рассматриваемой записью. Почему это не сработает для вас? - person Chris Farmer; 15.04.2015
comment
это запись хранилища сетки, я хочу запись комбинированного хранилища - person code4jhon; 15.04.2015
comment
Комбо больше не существует в то время, когда ваше событие запускается. Вам нужно, чтобы этот комбинированный магазин был доступен из вашего представления. Тогда вы можете просто найти его в обработчике события редактирования. Это было бы легко. - person Chris Farmer; 15.04.2015
comment
да, я создал ссылку на это хранилище через Ext.ComponentQuery.query, а затем с имеющимся у меня значением записи, которую я хочу, я нашел findExact ('UniqueId', val); Благодарность - person code4jhon; 15.04.2015

Хорошо, для всех, кто хочет попробовать это, я нашел то, что кажется недокументированным свойством EditorGridPanel: activeEditor.
Это свойство содержит свойство 'record', которое является ссылкой на текущую запись ComboBox (или что-то еще действительно) редактируется.
Это может быть немного хрупким (так как не документировано), но, похоже, работает.

В ExtJs 4.2 свойство сетки (для плагина cellediting) использовать следующее:

grid.editingPlugin.getActiveRecord()

Свойство editingPlugin все еще кажется недокументированным, а getActiveRecord().

person Gerrat    schedule 30.11.2010

Также в ExtJS 6 вы можете использовать недокументированное свойство context, которое содержит record.

grid.editingPlugin.context.record
person Mike    schedule 28.05.2021