Выбор модели

Благодаря выделению строки мы можем настроить выбор модели из грида. При этом мы можем настроить также и параметры выделения строки и даже отдельной ячейки с помощью моделей Ext.selection.RowModel и Ext.selection.CellModel.

Возьмем определение грида из предыдущего параграфа и применим Ext.selection.RowModel, заменив последний столбец следующим образом:

{
	xtype:'actioncolumn',
	width:40,
	items:[{
			icon:'del.png',
			handler:function (grid, rowIndex, colIndex) {
				var selectionModel= grid.getSelectionModel(), record;
				selectionModel.select(rowIndex);
				record = selectionModel.getSelection()[0];
				alert('Вы собираетесь удалить ' + record.get('name'));
				// удаление из таблицы
				// store.removeAt(rowIndex);
			}
		}]
}

С помощью вызова grid.getSelectionModel() мы получаем модель выбора строки.

Метод selectionModel.select(rowIndex); выделяет строку (если она не выделена), а с помощью кода record = selectionModel.getSelection()[0]; мы получаем модель, которая отображается на данную строку, в переменную record и затем модем уже ее манипулировать. Например, далее мы получаем значение свойства name: record.get('name')

Несколько иначе работает класс CellSelectionModel, задающий выделение отдельной ячейки, а выделение всей строки при этом не происходит.

Для этого для всего грида установим формат выделения:

Ext.create('Ext.grid.Panel', {
		title: 'Пользователи',
		height: 250,
		width: 500,
		store: store,
		selType: 'cellmodel',
		.......................

Затем изменим строку:

selectionModel.select(rowIndex);

на следующую:

selectionModel.setCurrentPosition({
         row: rowIndex,
         column: colIndex
});
    Поддержать сайт на родительском проекте КГБ