事件subGridRowExpanded上的jqGrid方法setGridParam导致错误

时间:2013-06-19 09:59:47

标签: jqgrid

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

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

第一步 - 将subgrid设置为true

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

这会导致以下错误: TypeError:this.p.subGridOptions未定义。

第二步 - 添加必需的subGridOptions

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

这会导致以下错误: TypeError:b.p.colModel [(((n + x)+ C)+ H)]未定义

为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 dynamic event
  2. How to programatically add an event handler on a JQGrid?
  3. How to reload JQuery grid keeping scroll position and collapse elements open
  4. Add an event handler to jqGrid after instantiation

1 个答案:

答案 0 :(得分:2)

我认为误解了subGrid: true选项的作用。如果使用该选项创建网格,jqGrid将使用namse subgrid添加列。因为您无法在jqGrid 中动态添加新列,所以无法使用GridUnload方法重新创建网格中的subGrid选项(请参阅the answer

方法setGridParam是愚蠢的。它只是使用$.extend来扩展jqGrid的内部选项(参见the source code)。在不考虑选项特定的情况下使用该方法可能会破坏网格的功能。

在某些情况下,可以使用子网格创建网格并使用隐藏列(请参阅the answerthis one)。您应该详细考虑这种方法是否可以满足您的要求。