我读到了使用jqgrid中的getCol metod来显示此question中网格页脚中的汇总列,其中包含:
var grid = $("#list"),
sum = grid.jqGrid('getCol', 'amount', false, 'sum');
grid.jqGrid('footerData','set', {ID: 'Total:', amount: sum});
但是当网格包含寻呼机时,计算仅针对显示的数据进行,我需要在文本框中显示常规总数。
这应该使用foreach来完成,还是有一些方法可以做到最有效?
显然我可以将它包含在我的模型中但是想要做到客户端
答案 0 :(得分:2)
除非您传递整个数据集,否则无法使用多个页面执行此操作。执行此操作并将此数据作为用户数据的一部分传递下来非常容易。
实施例
控制器:
foreach (var item in dataset)
{
summaryTotal += (sum of some relevant values)
}
...
records = totalRecords,
userdata = new { ColumnNameForFooterSubtotal = summaryTotal.ToString() },
rows = (
...
然后在您的视图中我建议使用页脚,然后您在控制器中计算的值将显示在上面使用的列名称的页脚行中。 (ColumnNameForFooterSubtotal)
...//jqGrid setup
//turn on the footer
footerrow: true,
userDataOnFooter: true,
答案 1 :(得分:0)
您可以先使用grid.jqGrid("getGridParam", "data")
来获取网格的内部数据。数据包含有关所有页面的信息。然后,您可以使用简单的for
循环来枚举grid.jqGrid("getGridParam", "data")
返回的数组中的项。每个项目都有属性amount
。因此,您需要使用parseInt(item.amount, 10)
将数据转换为int(或使用parseFloat
)并计算所需的总和。