我的代码-
onCellSelect: function(rowid,iRow,iCol,e)
{
jQuery("#createrule").click(function(){
hidePopup();
showPopUp6();
});
onCellSelect:
},
jqGrid中
onCellSelect
函数的确切含义是什么? 最佳答案
如果用户单击网格,则不应每次都注册新的click
事件处理程序。
jqGrid在创建网格期间将click
事件处理程序注册为一个。因此,在用户单击网格的某个单元格的情况下,您可以执行一些操作。参数rowid
和iCol
可帮助您确定单击了哪个单元格,并且如果需要,e
参数(click
事件的Event对象)可以为您提供更多信息。 jqGrid是开源项目。因此,您可以随时检查源代码,以更好地了解onCellSelect
的功能以及在哪种上下文中调用它。查看the lines代码。
只是一个示例,您可以定义以下格式化程序
formatter: function (cellValue, options, rowObject) {
return "<span class='myLink'>" + cellValue + "</span>";
}
在名称为“myColumn”的列中,并定义以下使用
myLink
类的CSS规则.myLink { text-decoration: underline; cursor: pointer; }
您将在该列中具有“链接”。
要检测用户单击了此类伪链接,可以使用以下
onCellSelect
回调onCellSelect: function (rowid, iRow, iCol, e) {
var $self = $(this), colModel = $self.jqGrid("getGridParam", "colModel");
if (colModel[iCol].name === "myColumn") { // test for the click in myColumn column
alert("OK here we can do something");
}
}
单击该警报将显示在该列中的所有位置,而不仅是在链接上。如果要检测仅单击链接,则我们应该测试
e.tagret
,它是用户单击的元素:onCellSelect: function (rowid, iRow, iCol, e) {
var $self = $(this), colModel = $self.jqGrid("getGridParam", "colModel");
if (colModel[iCol].name === "myColumn" && $(e.tagret).hasClass("myLink")) {
alert("OK, link is clicked and here we can do something");
}
}
因此
onCellSelect
可用于处理网格的每个单元格上的click
事件。如果需要额外禁止选择网格,则应使用beforeSelectRow
而不是onCellSelect
。例如,参见the answer。