Вся нужная информация предоставлена в событии.
1й способ)
select у грид это по сути событие select в rowmodel,
если в качестве модели указать cellmodel, то будет срабатывать select от cell Model
Ext.define('app.view.infogrid' ,{
extend: 'Ext.grid.Panel',
selType: 'cellmodel',
//....
listeners:{
select : {
fn: function(CellModel,record,rowIndex, colIndex,eOpts ) {
// теперь мы знаем в каком столбце и в какой строке, а ещё у нас есть cellMode и record
console.log("record=",record); // вся строка
console.log("rowIndex=",rowIndex); //номер строки
console.log("colIndex=",colIndex); //номер столбца
console.log(record.fields.items[colIndex].name); // имя столбца
console.log(record.get(record.fields.items[colIndex].name)); // значение ячейки
// record.get(record.fields.items[colIndex].name) - работает, но жаль что более красивого способа ненашёл ((
}
}
}
});
2й способ)
создадим свою выбиралку
// создадим cell model ответственный за выделение
var cellmodel = new Ext.selection.CellModel({
mode: 'SINGLE',
listeners: {
// эта функция сработает при выборе ячейки
select : {
fn: function(CellModel,record, rowIndex, colIndex,eOpts ) {
// теперь мы знаем в каком столбце и в какой строке, а ещё у нас есть cellMode и record
console.log(rowIndex,colIndex);
}
}
}
});
// создадим таблицу
var grid = new Ext.grid.Panel({
store: store,
selModel: cellmodel, //указываем selModel, selType судя по всему это просто доступ по alias
......
})
3й) есть специальный метод ответственный за возврат позиции (правда я его применить не смог, нефурычит нефига)
sm = gridUsers.getSelectionModel();
console.log(sm.getCurrentPosition());