将摘要页脚移动到分组 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 版本有效,因为它使用了正确的缩小版本。感谢奥列格的回答!
除了使用 groupSummaryPos:['header']
之外,还有其他方法可以在分组 header 中进行汇总吗?我正在使用 jqGrid v4.6.0,不幸的是我无法升级到更高版本。
我有一个 table 是我在我的项目中使用 jqGrid 实现的。 gridOptions 与我上一个问题中提到的非常相似 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 版本有效,因为它使用了正确的缩小版本。感谢奥列格的回答!