除了使用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的情况下将摘要页脚移动到组头?
答案 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的回答!!