将摘要页脚移动到分组 header

Moving summary footer to grouping header

除了使用 groupSummaryPos:['header'] 之外,还有其他方法可以在分组 header 中进行汇总吗?我正在使用 jqGrid v4.6.0,不幸的是我无法升级到更高版本。

我有一个 table 是我在我的项目中使用 jqGrid 实现的。 gridOptions 与我上一个问题中提到的非常相似 正如您从 plunkr 中看到的那样,该演示运行良好,我可以在 header 上显示摘要。但是,当我将代码移动到我的项目时,摘要总是显示在页脚上。我的项目和 plunkr 代码之间的唯一区别是在我的项目中,我正在使用将初始化 jqGrid 的可重用组件。我已经调试了代码以查看 groupSummaryPos = ['header'] 是否被该可重用组件覆盖了我项目中的某处,但它没有给我任何运气。

所以,我决定寻求解决方法。在 GRID_COMPLETE 事件之后,我尝试通过将摘要页脚 DOM 元素移动到分组 header 来实现 'hack-move',使用

var footerContent = jQuery('.jqfooter').children;
jQuery('.jqgroup')[0].children[0].removeAttribute('colspan');
jQuery('.jqgroup')[0].appendChild(footerContent[0]); // till all columns

但是,这不起作用,因为 appendChild 将以随机顺序移动每一列(我不确定为什么)。总之,我尝试使用正确的方法,即指定 groupSummaryPos: ['header'] 在我的 colOptions 中,还有一个 'really bad' hack 方式,但它也不起作用。

是否可以在不使用 groupSummaryPos 的情况下将摘要页脚移动到组 header?

我认为您应该对代码的哪一部分更改 groupSummaryPos 选项进行区域设置。 'hack-move' 解决方案似乎我错了。

您可以尝试在 onInitGrid 回调中将 groupSummaryPos 重置为 'header' 作为第一次尝试。您应该另外验证 gridview: true 是否也已设置并且没有人修改它。

groupSummaryPos 选项将在 groupingRender 方法内部使用,并将在 addJSONData 内部调用。所以你可以使用 beforeProcessing 回调(如果你从服务器加载数据)或 beforeRequest。因此,如果在 onInitGrid 内将 groupSummaryPos 重置为 'header' 不起作用,您可以在 beforeRequest 内或 beforeProcessing.[=25 内执行此操作=]

我找到了原因。在我的项目中,我使用 Bower 下载了 jqGrid 4.6.0 的依赖项并使用了缩小版本。奇怪的是,jqGrid 4.6.0 中包含的缩小版本是 4.5.2 版(这是缺陷吗?)。这里的评论部分提到了这一点

https://github.com/tonytomov/jqGrid/commit/7216e3866b9c49ebee93d6e09dc5a72eb0460d89

这就是 summaryPos 不起作用的原因,因为我认为 groupSummaryPos header 在 4.5.2 中不受支持。 plunkr 版本有效,因为它使用了正确的缩小版本。感谢奥列格的回答!