【发布时间】:2018-03-17 03:29:33
【问题描述】:
我的目标是在 jqGrid 中执行多级分组并为每个级别添加摘要页脚。
我已经使用了他们官方网站上的代码来动态更改分组,我扩展为动态三级分组。
我创建了 3 个组合框来选择与每个级别的分组相关的列名。
我已经实现了多级分组,但我在这里遇到的问题是摘要页脚是每页而不是每组中所有行的总和。
我尝试了几种解决方案: 其中之一,在此链接中实现的解决方案http://www.guriddo.net/demo/guriddojs/grouping/summary_and_grand_total/index.html 但它对我不起作用。
我尝试自定义 summaryType 函数以计算客户端每个组的总和行,但我不能。
现在,我已经在服务器端准备了按第一级分组的列表,然后在客户端获取它以使用“userdata”填充摘要页脚。 这是我的功能:
var sumArraySearch = [];
var criteria = '';// column name selected in Combobox to do the grouping
function sumSearch(val, name, record)
{
if(init == 0){
// console.log ($("#griddata").jqGrid('getGridParam','userData').rows);
var rows = $("#griddata").jqGrid('getGridParam','userData').rows;
var size = $("#griddata").jqGrid('getGridParam','userData').rows.length;
for (var i = 0; i < size; i++) {
sumArraySearch[rows[i][criteria]]= rows[i]['brutto'];
}
init ++;
}
return sumArraySearch[record[criteria]];
}
我现在已经阻止,如果我从服务器发送 2 个列表:第一个是按第一级分组的数据,第二个是按第二级分组的数据,我如何才能获得每个组的正确总和,因为sum 由一个函数返回?
编辑:
我准备了一个JSFiddle demo 来演示这个问题。
【问题讨论】:
-
1) 您在代码中使用
loadOnce: true而不是loadonce: true。您应该修复该选项。 2) 请附上您使用(可以使用)的jqGrid的version,以及jqGrid的fork(free jqGrid,商业Guriddo jqGrid JS或an版本 forceClientSorting: true,它扩展了选项loadonce: true。 4) 如果您准备 JSFiddle 演示,它会很好地演示问题。 -
能否请您准备一个带有数据的工作演示?只有这样才能找到所描述的问题
-
@Oleg:我正在使用免费的 jQgrid 4.4.3。升级版本到4.7的解决方法吗?
-
@nayomi:jqGrid 4.4.3 已经 4.5 岁了。 “jqGrid”一直存在到版本 4.7。之后 Tony Tomov 更改了许可协议,将产品名称改为“Guriddo jqGrid JS”并使其商业化(参见价格here)。我以“free jqGrid”的名义开始了 alternative fork,它在 MIT/GPL 许可下完全免费提供。因此,“free jqGrid”是产品的名称。我建议您决定是使用商业“Guriddo jqGrid JS”还是“免费 jqGrid”,并升级到相应 fork 的最新版本。
-
@Oleg:我使用了“免费的 jqGrid”。我准备了一个使用 4.15.1 版本的 jsFiddle 演示。你能看看吗? jsfiddle.net/nayoumi/d2v0neo5/36
标签: javascript jquery jqgrid