我使用JqGrid构建表,当我选择一行时,我得到了onSelectRow动作。在表中还有一个带按钮的列,我使用格式化程序创建。如何单击按钮使onSelectRow事件无效?
格式化:
function btnCopyZn(rowId, cellValue, rowObject)
{
return "<button onClick='clickFunctionCopyZn(" + rowId + ")' class='btn btn-xs btn-default'>"
+ '<sapn class="glyphicon glyphicon-copy"></span>'
+ "</button>";
}
功能复制:
function clickFunctionCopyZn(rowId)
{
if (rowId != null)
{
var input = document.createElement("input");
input.value = rowId;
document.body.appendChild(input);
input.select();
document.execCommand("Copy");
document.body.removeChild(input);
}
}
onSelectRow:
model.tableTreeGrid.setGridParam({
onSelectRow: function ()
{
// function
}
});
答案 0 :(得分:1)
如果您使用Guriddo jqGrid,那么一种可能的解决方案是使用另一个名为beforeSelectRow的事件。
当用户单击该行但在选择它们之前,此事件将触发。此事件应返回布尔值true或false。如果事件返回true,则完成选择。如果事件返回false,则不选择该行,并且如果未定义任何其他操作(onCellSelect除外)。
传递给此事件的参数是rowid和事件处理程序。
$("#jqGrid").jqGrid({
...
beforeSelectRow : function( rowid, ev ) {
if( condition_not_to_selectrow) {
return false;
} else {
return true;
}
},
...
});