2015-02-11 72 views
0

当我调用这样的事件“reloadGrid”事件亚格的jqGrid - 上reloadGrid(父网格自动加载)亚格崩溃

$('#subgrid_id').trigger("reloadGrid"); 

父网格重装以及折叠亚格并删除所有子网格HTML代码。

如何防止此行为并仅重新加载子网格?

我正在使用jQgrid 4.5.2。

+1

你应该包括更多关于你所做的事情的细节。你使用什么样的子网格?它是否为子网格?哪个'datatype'有子网格和主网格?你是否单独加载*网格数据和子网格数据,或者一次加载所有数据*(对于主网格)并且使用* local *数据作为子网格数据? ... – Oleg 2015-02-11 15:59:58

+0

感谢您的回放, 它是网格作为子网格,我试图重新加载。 数据类型是JSON。 我使用dataUrl从服务器分别加载网格和子网格。 – iPeleg 2015-02-11 16:01:27

+1

我的意思是:你的代码有错误,但是只能从代码的描述中找不到错误。一个人必须看到代码本身。如果你执行'$('#subgrid_id')。trigger(“reloadGrid”)'然后**只有子网格应该被重新加载。可能你以一种错误的方式构造了子网格标识符,并且你有可能从一千个可能的问题中得到了其他信息。 – Oleg 2015-02-11 16:09:51

回答

1

你应该验证你如何在subGridRowExpanded回调里面建立子网格id。它与子网格一起工作,完全控制子网格的所有ID以及主网格和子网格的所有rowid是非常重要的。所有的ID必须是唯一的。您应该基于subGridRowExpanded回调的第一个参数构建子网格的标识,或者通过调用方法$.jgrid.randId()在每次调用时返回唯一标识。

我强烈建议您为子网格另外使用唯一的idPrefix选项。您可以基于subGridRowExpanded回拨的输入参数建立idPrefix选项的值。然后rowid会根据数据的id建立,但是id将会有前缀。例如,您可以使用第二个参数rowid,其后缀为idPrefix: rowid + "_s_"。因此,如果您的主网格数据的ID为10,20,30 ...,并且子网格的数据包含ID 10,15,20,则jqGrid将使用子网格的rowid:20_s_10,20_s_15,20_s_20用于子网格打开主电网ID 20的行。我希望我不要把你和这个例子混淆起来。无论如何,我建议你打开你的网格的2-3个子网格,并仔细检查哪些ID具有每个子网格和主网格行的子网格。你应该找不到重复的id。