Вы можете контролировать, по какому щелчку будет выбираться строка в соответствии с вашим пользовательским обработчиком событий beforeSelectRow .Если обработчик вернет true, будет выбрана строка.Если вы вернете false, строка не будет выделена.
Второй параметр beforeSelectRow
- это объект события , e.target - элемент DOM, по которому щелкнули,Вы можете получить ячейку (<td>
), в которой щелчок сделан с помощью $(e.target).closest('td')
.Затем вы можете использовать $. Jgrid.getCellIndex , чтобы получить индекс внутреннего значения ячейки строки.Индекс в colModel
должен указывать на столбец «cb», который содержит флажки.Таким образом, код может быть следующим:
beforeSelectRow: function (rowid, e) {
var $myGrid = $(this),
i = $.jgrid.getCellIndex($(e.target).closest('td')[0]),
cm = $myGrid.jqGrid('getGridParam', 'colModel');
return (cm[i].name === 'cb');
}
Соответствующую демонстрацию вы можете увидеть здесь .