【问题标题】:free-jqgrid treegrid leaf node click eventfree-jqgrid treegrid 叶节点点击事件
【发布时间】:2016-04-15 15:13:26
【问题描述】:

我正在尝试捕获 treegrid 叶节点的单击事件,以触发 free-jqGrid gridview 的另一个实例的刷新。我正在使用 free-jqGrid 4.13.2。我查看了 treegrid 的源代码,但没有看到单击叶节点时触发的函数。

我尝试在gridview 中使用自定义格式化程序,将cellvalue 替换为带有onclick 事件的div,该事件将刷新gridview。它第一次工作(它刷新了gridview),但之后就没有了,我唯一看到的是gridview工具栏中的图标在每次单击treegrid叶节点时都会重复。

【问题讨论】:

    标签: jquery jqgrid free-jqgrid


    【解决方案1】:

    Tree jqGrid 对 TreeGrid 节点有很多回调,但是叶子会被解释为一个带有数据的简单行。因此,您必须使用beforeSelectRowonCellSelectonSelectRow 来检测所需的点击。回调以rowid为第一个参数,您可以使用getLocalRow根据@​​987654327@获取行的数据。对应的代码会很简单:

    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") 将为您提供点击的<td> 单元格的 DOM 元素的 jQuery 包装器。

    【讨论】:

    • 感谢奥列格!我想我没有考虑Tree和Grid jqGrid之间的联系。现在是有道理的,我会在未来记住这一点。
    • 我们是否可以在网格单元格中定义 ngclick 事件,这样如果我们使用多个网格,它对于 ex 的每个网格的行为应该不同,而不是警报,如果我们想要另一个属性,我们可以将其外部化
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    相关资源
    最近更新 更多