2

有什么方法可以强制 jqGrid 在切换其行时不删除子网格数据?我当前加载数据网格的过程如下:

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

2)通过json将数据加载到本地主网格中

3)通过json在本地向子网格添加数据

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

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

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

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

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

预先感谢您的协助。

4

1 回答 1

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

于 2011-05-26T15:09:30.237 回答