gpt4 book ai didi

jqgrid - 如何隐藏 jqGrid treegrid 中的行,在 expandNode 事件之后触发?

转载 作者:行者123 更新时间:2023-12-04 05:07:51 34 4
gpt4 key购买 nike

我有一个有 2 个级别的基本树形网格,我希望隐藏一些行而其他行可见;我以编程方式使用 $("#"+ rowId).hide() 和 $("#"+ rowId).show() 执行此操作,因为哪些行可见取决于网格外的数据。那部分工作正常。

但是,当我折叠一个节点然后展开它时,所有子节点都是可见的,即使是我隐藏的子节点也是如此。显然,jqGrid 几乎只是在行上执行 .hide() 和 .show() ,这否定了我的设置。所以我的想法是在每一行添加一个隐藏字段来存储它是否应该可见,然后在展开事件之后重新隐藏/显示。问题是,我不确定如何捕获事件并在其后立即执行代码。

Oleg 在此处展示了一种捕获事件的方法:jqGrid treeGrid catch expand collaps events

不幸的是,这对我不起作用,因为它只会覆盖我在那里所做的任何隐藏/显示。我需要在 jqGrid 函数之后执行代码。关于如何做到这一点的任何想法?

最佳答案

解决方案对我来说似乎很容易。只需对来自 the answer 的代码做一些小的修改你引用的。您可以执行以下操作

var orgExpandNode = $.fn.jqGrid.expandNode;
$.jgrid.extend({
expandNode: function (rc) {
// here you can insert the code which will be executed
// before the original expandNode
var res = orgExpandNode.call(this, rc);

// now you can execute some code after the original expandNode
// for example the next line hide the node in the grid
$("#1_1_1").hide(); // hide some row of the grid

return res; // return the value from expandNode
}
});

the demo .该演示在 TreeGrid 中有一个节点,其具有 id="1_1_1" ,但它一直处于隐藏状态。

更新: Free jqGridbeforeExpandRow , afterExpandRow , beforeExpandNodeafterExpandNode回调和 "jqGridTreeGridBeforeExpandRow" , "jqGridTreeGridAfterExpandRow" , "jqGridTreeGridBeforeExpandNode" , "jqGridTreeGridAfterExpandNode"事件。因此,在使用免费 jqGrid 的情况下,不需要上述 TreeGrid 方法的子类化。

关于jqgrid - 如何隐藏 jqGrid treegrid 中的行,在 expandNode 事件之后触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15282974/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com