free-jqgrid treegrid 叶子节点点击事件
free-jqgrid treegrid leaf node click event
我正在尝试捕获 treegrid 叶节点的单击事件,以便触发 free-jqGrid gridview 的另一个实例的刷新。我正在使用免费的 jqGrid 4.13.2。我查看了 treegrid 的源代码,但没有看到单击叶节点时触发的函数。
我曾尝试在 gridview 中使用自定义格式化程序,将 cellvalue 替换为 div 以及将刷新 gridview 的 onclick 事件。它第一次工作(它刷新 gridview),但之后,它没有,我唯一看到的是 gridview 工具栏中的图标随着每次单击 treegrid 叶节点而复制。
Tree jqGrid 对 TreeGrid 节点有很多回调,但叶子将被解释为带有数据的简单行。因此,您必须使用 beforeSelectRow
、onCellSelect
或 onSelectRow
来检测所需的点击。回调将 rowid
作为第一个参数,您可以使用 getLocalRow
获取基于 rowid
的行的数据。对应的代码会很简单:
beforeSelectRow: function (rowid, e) {
var item = $(this).jqGrid("getLocalRow", rowid);
if (item != null && item.isLeaf) {
alert("The row with leaf \"" + item.name + "\" is clicked");
}
return true; // allow row selection
}
The demo 演示代码。您可以使用 e.target
来获取有关单击的单元格的更多准确信息。例如,$(e.target).closest("tr.jqgrow>td")
将为您提供 jQuery 包装到单击的 <td>
单元格的 DOM 元素。
我正在尝试捕获 treegrid 叶节点的单击事件,以便触发 free-jqGrid gridview 的另一个实例的刷新。我正在使用免费的 jqGrid 4.13.2。我查看了 treegrid 的源代码,但没有看到单击叶节点时触发的函数。
我曾尝试在 gridview 中使用自定义格式化程序,将 cellvalue 替换为 div 以及将刷新 gridview 的 onclick 事件。它第一次工作(它刷新 gridview),但之后,它没有,我唯一看到的是 gridview 工具栏中的图标随着每次单击 treegrid 叶节点而复制。
Tree jqGrid 对 TreeGrid 节点有很多回调,但叶子将被解释为带有数据的简单行。因此,您必须使用 beforeSelectRow
、onCellSelect
或 onSelectRow
来检测所需的点击。回调将 rowid
作为第一个参数,您可以使用 getLocalRow
获取基于 rowid
的行的数据。对应的代码会很简单:
beforeSelectRow: function (rowid, e) {
var item = $(this).jqGrid("getLocalRow", rowid);
if (item != null && item.isLeaf) {
alert("The row with leaf \"" + item.name + "\" is clicked");
}
return true; // allow row selection
}
The demo 演示代码。您可以使用 e.target
来获取有关单击的单元格的更多准确信息。例如,$(e.target).closest("tr.jqgrow>td")
将为您提供 jQuery 包装到单击的 <td>
单元格的 DOM 元素。