PHP jqGrid页脚sum total列只对当前页面求和


PHP jqGrid footer sum total column only sum the current page

这是我的jqgrid footerrow代码

loadComplete: function() {
            var debit = $("#myDataList").jqGrid('getCol', 'debit', false, 'sum');
            $("#myDataList").jqGrid('footerData', 'set', {category: 'Total:', debit: debit});
            var credit = $("#myDataList").jqGrid('getCol', 'credit', false, 'sum');
            $("#myDataList").jqGrid('footerData', 'set', {category: 'Total:', credit: credit});
        }

我想加两列值借方和贷方,我现在的问题是总价值只总结当前页面,而不是全部。

如果您使用datatype: "local"datatype: "json"datatype: "xml"loadonce: true,那么更多的数据将在网格中本地保存为一页。数据数组可以通过$(this).jqGrid("getGridParam", "data")访问。因此,可以枚举内部数据的所有项,并计算"debit""credit"列中所有元素的和。然后可以使用

$(this).jqGrid("footerData", "set", {
    category: "Total:",
    debit: debit,
    credit: credit
});

答案和这个包含非常紧密工作的代码片段。在您的情况下,它将是关于以下代码(我没有测试它):

loadComplete: function () {
    var $self = $(this),
        localData = $self.jqGrid("getGridParam", "data"),
        itemCount = localData.length,
        totalCredit = 0,
        totalDebit = 0,
        i,
        item;
    for (i = 0; i < itemCount; i++) {
        item = localData[i];
        totalCredit += parseFloat(litem.credit);
        totalDebit += parseFloat(litem.debit);
    }
    $self.jqGrid("footerData", "set", {
        category: "Total:",
        debit: totalDebit,
        credit: totalCredit
    });
}