我成功配置了一个子网格,包括我的网格中的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。
答案 0 :(得分:2)
我认为误解了subGrid: true
选项的作用。如果使用该选项创建网格,jqGrid将使用namse subgrid
添加列。因为您无法在jqGrid 中动态添加新列,所以无法使用GridUnload
方法重新创建网格中的subGrid选项(请参阅the answer)
方法setGridParam
是愚蠢的。它只是使用$.extend
来扩展jqGrid的内部选项(参见the source code)。在不考虑选项特定的情况下使用该方法可能会破坏网格的功能。
在某些情况下,可以使用子网格创建网格并使用隐藏列(请参阅the answer和this one)。您应该详细考虑这种方法是否可以满足您的要求。