子网格缓存或停止删除子网格数据(jqGrid)

时间:2010-07-27 22:24:11

标签: jquery jqgrid subgrid

有没有办法强制jqGrid在切换行时不删除子网格数据?我当前加载数据网格的过程如下:

1)设置主网格,使用我稍后可以使用的ID以编程方式设置子网格

2)通过json

将数据本地加载到主网格中

3)通过json

在本地向子网格添加数据

由于我在本地加载子网格而不是URL,当用户切换(隐藏然后重新显示)时,网格中没有任何数据,我希望它显示提供的原始数据到子网格。

我知道这似乎是一种加载数据的奇怪方式,但有一个原因

我目前使用jqGrid做的事情是在一个网页上显示大量的保险信息(基本上是一份报告)。这个网页应该自动加载所有数据,我有很多需要提供子网格功能的实例。我已经弄清楚如何通过手动强制执行click事件来实现这一点,以便显示子网格,但同样,如果用户点击子网格,它就会消失并且不会再返回。

如果您对此有任何建议,请告诉我。

此外,如果您认为有更好的方法可以自动显示所有数据,请告诉我。到目前为止,我发现jqGrid很容易使用,但是我一直强迫它做一些本来不做的事情,比如在页脚行中添加总值。

提前感谢您的协助。

1 个答案:

答案 0 :(得分:2)

您要做的是防止jqGrid在展开行时重新加载子网格数据。此控制旋钮位于jqGrid的subGridOptions属性中。 subGridOptions对象有一个名为reloadOnExpand的布尔属性,它控制这种确切的行为。

初始化jqGrid对象时,只需确保将此属性设置为false,如下所示:

jQuery("#gridId").jqGrid({
    // ... other properties ...
    subGrid: true,
    subGridOptions: {
        reloadOnExpand: false // Prevent jqGrid from wiping out the subgrid data.
    },
    subGridRowExpanded: subGridExpandCallback,
    // ... other properties ...

我能找到这个代码的唯一地方就是在他们的演示网站页面上做了一个“查看源代码”,提到了这种行为。此帖子发布时的演示页面位于:http://www.trirand.com/blog/phpjqgrid/examples/hierarchy/subgrid_loadonce/default.php

相关问题