В сетке ExtJS я могу получить индекс выбранного элемента данных следующим образом:
grid.getSelectionModel().on('rowselect', function(sm, index, rec){
changeMenuItemInfoArea(menuItemApplication, 'you are on row with index ' + index);
var row_number_parts = rec.id.split('-'); // rec.id = e.g. "ext-record-1"
var selected_index = row_number_parts[2] - 1;
alert(selected_index);
});
Но как получить индекс выбранного элемента данных при двойном щелчке?
Когда я делаю это:
listeners: {
'rowdblclick': function(grid, rowindex, e){
console.log(...);
}
}
и grid
, и e
, по-видимому, не обладают необходимой мне информацией, а rowindex
бесполезен, поскольку, если пользователь перебирает столбец, то индекс строки, по которой дважды щелкнули, не обязательно индекс набора данных, который загрузил сетку.
Добавление
Благодаря @McStretch, я в конечном счете решил проблему, поместив id
в список элементов, скрыв столбец идентификатора, а затем отправив идентификатор на страницу редактирования, например:
listeners: {
'rowdblclick': function(grid, index, rec){
var id = grid.getSelectionModel().getSelected().json[0];
go_to_page('edit_item', 'id=' + id);
}
}