将摘要页脚移动到分组标题

时间:2015-04-01 06:23:35

标签: jquery jqgrid

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

我有一个我在项目中使用jqGrid实现的表。 gridOptions与我在上一个问题here中提到的非常相似 正如您从plunkr中看到的,该演示工作正常,我可以在标题上显示摘要。但是,当我将代码移动到我的项目时,摘要始终显示在页脚上。我的项目和plunkr代码之间的唯一区别在于我的项目,我正在使用一个可重用的组件来初始化jqGrid。我调试了代码,看看groupSummaryPos = ['header']是否被我的项目中的某个可重用组件覆盖,但它没有给我带来好运。

所以,我决定去寻找解决方法。我尝试通过在GRID_COMPLETE事件之后使用

将摘要页脚DOM元素移动到分组标题来进行'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中,也是一个“非常糟糕”的黑客方式,但它也没有用。

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

2 个答案:

答案 0 :(得分:1)

我认为您应该定位代码的哪一部分更改groupSummaryPos选项。 “黑客移动”解决方案似乎是错误的方式。

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

groupSummaryPos选项将在groupingRender方法内部使用,将在addJSONData内调用。因此,您可以使用beforeProcessing回调(如果从服务器加载数据)或beforeRequest。因此,如果groupSummaryPos内的'header'重置为onInitGrid无效,您可以在beforeRequest内或beforeProcessing内执行此操作。

答案 1 :(得分:0)

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

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

这就是为什么summaryPos无效,因为我认为4.5.2中不支持groupSummaryPos标头。 plunkr版本有效,因为它使用了正确的缩小版本。感谢Oleg的回答!!