总结Jqgrid中的列

时间:2013-04-18 22:27:56

标签: c# asp.net-mvc-3 jqgrid

我读到了使用jqgrid中的getCol metod来显示此question中网格页脚中的汇总列,其中包含:

var grid = $("#list"),
sum = grid.jqGrid('getCol', 'amount', false, 'sum');

grid.jqGrid('footerData','set', {ID: 'Total:', amount: sum});

但是当网格包含寻呼机时,计算仅针对显示的数据进行,我需要在文本框中显示常规总数

这应该使用foreach来完成,还是有一些方法可以做到最有效?

显然我可以将它包含在我的模型中但是想要做到客户端

2 个答案:

答案 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)并计算所需的总和。