Редактируемая сетка ExtJS4, получающая выбранную строку, возвращает пустую

Попытка получить индекс выбранной строки (и затем установить другое значение поля записи) в сетке с плагином CellEditing, но метод getSelection() возвращает пустой массив. У меня есть прослушиватель для события выбора в поле со списком, когда это изменяется, мне нужно получить индекс отредактированной строки.

...
lazyRender: true,
listClass: 'x-combo-list-small',
listeners: {
    scope: this,
    select: function(field, value, options) {
        var selection = Ext.getCmp('lineItemsGrid').getSelectionModel().getSelection();                                            
        console.log(selection);
    }
}
...

Я использую выпуск ExtJS 4.0.2a. Я новичок в ExtJS, поэтому могу что-то упустить.

Вот файл JSFiddle, если хотите посмотреть.
http://jsfiddle.net/Z6b7a/8/

Любая помощь приветствуется.

Спасибо
Оз


person Ozay    schedule 15.08.2011    source источник


Ответы (1)


Вам не нужно использовать метод getSelection(), вы можете обновить запись непосредственно из события редактирования.

http://jsfiddle.net/Z6b7a/7/

Я обновил скрипку, а также вот код для обновления записи после редактирования:

edit: function(editor, e, options) {
     e.record.set('light', 'Shade');
     //var selections = Ext.getCmp('lineItemsGrid').getSelectionModel().getSelection();
     //console.log(selections);
}
person JamesHalsall    schedule 15.08.2011
comment
Спасибо за ваш ответ. Я думаю, что это будет работать так, но я должен был быть более ясным в своем вопросе. Я хочу сделать это, когда пользователь выбирает элемент из поля со списком, поэтому у меня нет доступа к объекту e.record. Я обновил скрипт (jsfiddle.net/Z6b7a/8) и отредактирую исходный вопрос на избежать введения в заблуждение. - person Ozay; 15.08.2011