0

我成功地配置了一个子网格,包括网格中的 subGridRowExpanded 回调。这意味着回调和配置值是有效的。

我现在想删除子网格配置,以便以编程方式添加它。

第一步 -将 subgrid 设置为 true

jQuery('#s3list').jqGrid('setGridParam', {
    subGrid: true
});

这会导致以下错误: TypeError: this.p.subGridOptions is undefined。

第二步 -添加所需的 subGridOptions

jQuery('#s3list').jqGrid('setGridParam', {subGridOptions: {
    reloadOnExpand: false
}});

这会导致以下错误: TypeError: bpcolModel[(((n + x) + C) + H)] is undefined

为 subGridRowExpanded 添加我的有效回调无效 - 错误保持不变:

jQuery('#s3list').jqGrid('setGridParam', {
    subGridRowExpanded: function(subgrid_id, row_id) {
        /* lots of valid code */
    }
});

有可能吗?

使用 jqGrid 4.5.2。

相关问题/疑问: https ://github.com/tonytomov/jqGrid/issues/478

  1. jqGrid动态事件
  2. 如何以编程方式在 JQGrid 上添加事件处理程序?
  3. 如何重新加载 JQuery 网格保持滚动位置和折叠元素打开
  4. 实例化后向 jqGrid 添加事件处理程序
4

1 回答 1

2

subGrid: true我想人们对选项的作用有误解。subgrid如果您使用该选项创建网格,jqGrid 添加带有名称的列。因为您无法在 jqGrid 中动态添加新列,所以您无法在网格中打开 subGrid 选项,而无需根据GridUnload方法重新创建它(参见答案)。

方法setGridParam很愚蠢。它只是用于$.extend扩展 jqGrid 的内部选项(参见源代码)。在不考虑选项的具体情况的情况下使用该方法可能会破坏网格的功能。

在某些情况下,可以使用 subgrid 创建网格并使用隐藏列(参见答案这个)。您应该详细考虑这种方法是否可以满足您的要求。

于 2013-06-19T11:23:43.580 回答