@icats: Добро пожаловать!
ользуюОлег«sпредложение использоватьbeforeSelectRow
событие для обработки кликов по ячейкам в моей сетке.
Код Олега в его ответе (который точно имитирует):
Вы можете определить столбцы с помощью кнопок, как показано ниже
{ name: 'add', width: 18, sortable: false, search: false,
formatter:function(){
return "<span class='ui-icon ui-icon-plus'></span>"
}}
В приведенном выше коде я использую пользовательский форматер jqGrid, но без привязки к событию. Код
beforeSelectRow: function (rowid, e) {
var iCol = $.jgrid.getCellIndex(e.target);
if (iCol >= firstButtonColumnIndex) {
alert("rowid="+rowid+"\nButton name: "+buttonNames[iCol]);
}
// prevent row selection if one click on the button
return (iCol >= firstButtonColumnIndex)? false: true;
}
гдеfirstButtonColumnIndex = 8
а такжеbuttonNames = {8:'Add',9:'Edit',10:'Remove',11:'Details'}
, В своем коде вы можете заменить оповещение на соответствующий вызов функции.
Проблема в том, что моя сетка также сортируется (я используюsortableRows
метод на моей сетке). Если пользователь слегка щелкает мышью при нажатии на ячейку,beforeSelectRow
событие никогда не вызывается (сортируемое событие).
Это желательно в большинстве ситуаций - однако, я думаю, что бы исправить это, чтобы каким-то образом исключить столбцы из «ручек», чтобы перетащить (отсортировать) строку и позволитьonSelectRow
триггер события на этих столбцах. Я просто не могу понять, как это сделать! Любая помощь очень ценится :)