0

我阅读了有关使用 jqgrid 中的 getCol 方法在此问题的网格页脚中显示汇总列的信息,例如:

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

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

但是当网格包含寻呼机时,计算仅针对显示的数据发生,我需要在文本框中显示列的总和

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

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

4

2 回答 2

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,
于 2013-04-18T23:00:31.543 回答
0

您可以使用grid.jqGrid("getGridParam", "data")first 来获取网格的内部数据。数据包含有关所有页面的信息。然后你可以做一个简单for的循环来枚举由返回的数组中的项目grid.jqGrid("getGridParam", "data")。每个项目都有属性amount。因此,您需要使用parseInt(item.amount, 10)将数据转换为 int (或使用parseFloat)并计算所需的总和。

于 2013-04-18T23:02:27.873 回答