2010-07-27 73 views
2

有没有什么办法强制jqGrid不去除其行被切换时删除子网格数据?我的用于装载数据网格当前过程如下:子网格缓存或停止子网格数据被删除(jqGrid)

1)安装主电网,设置次网格了编程与ID,我可以使用稍后

2)通过JSON将数据装载到本地主电网

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

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

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

我所currenty与jqGrid的做的是显示一个网页上成吨的保险信息(主要是这是一份报告)。这个网页应该自动加载所有的数据,并且我有许多需要提供子网格功能的实例。我已经想出了如何通过手动强制发生点击事件来完成此操作,以便显示子网格,但是,如果用户单击子网格,则会再次消失并且不会返回。

如果您对此有任何建议,请让我知道。

此外,如果您认为有更好的方法让所有数据自动显示,请让我知道。到目前为止,我发现jqGrid很容易处理,但我一直强迫它做它本来没有做的事情,比如在页脚行中添加总值。

非常感谢您的帮助。

回答

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