我的代码 -
onCellSelect: function(rowid,iRow,iCol,e)
{
jQuery("#createrule").click(function(){
hidePopup();
showPopUp6();
});
onCellSelect:
},
jqGrid中onCellSelect
函数的确切反转是什么?
答案 0 :(得分:1)
如果用户点击网格,则每次都不应注册新的click
事件处理程序。
jqGrid在创建网格期间注册click
个事件处理程序。因此,如果用户单击网格的某个单元格,您可以执行某些操作。参数rowid
和iCol
可帮助您确定单击了哪个单元格,e
参数(click
事件的事件对象)可以在需要时为您提供更多信息。 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。