如何在Asp.net的Jqgrid中计算列总和并显示在页脚行?

6
大家好! 我在jqgrid中显示了数据,并启用了'footerrow:true'。现在根据我的需求,我想在页脚行上显示特定列的总和...请大家帮帮我,因为这是我第一次使用Jqgrid... 提前感谢各位的帮助!

点击这里查看答案,点击这里查看我之前回答过的同一主题的更多示例。 - Oleg
1个回答

17
如果您想对jqGrid中的值进行求和,可以在JavaScript中实现(最好在gridComplete事件中):
$('#gridId').jqGrid({
    ...
    footerrow: true,
    gridComplete: function() {
        var $grid = $('#gridId');
        var colSum = $grid.jqGrid('getCol', '<Your column name>', false, 'sum');
        $grid.jqGrid('footerData', 'set', { 'Your column name>: colSum });
    }
});

如果你需要在服务器端计算总和,那么你必须先启用userDataOnFooter选项:
$('#gridId').jqGrid({
    ...
    footerrow : true,
    userDataOnFooter : true
});

然后在您的服务器响应中包含总和。例如,在JSON的情况下,它应该是这样的:

{
    total: x,
    page: y,
    records: z,
    rows : [
        ...
    ],
    userdata: { <Your column name>: <sum counted on server side> }
}

你可以在jqGrid Demos页面上查看实时示例(你应该选择“版本3.5中的新功能”,然后选择“摘要页脚行”)。

这是我添加的代码,但它不起作用,先生。 rowNum: 10, rowList: [10, 20, 30], pager: '#UsersGridPager', sortname: 'UserID', viewrecords: true, sortorder: 'asc', autowidth: true, toppager: true, footerrow: true, gridComplete: function() { var $grid = $('#UsersGrid'); var colSum = $grid.jqGrid('getCol', '<Balance>', false, 'sum'); $grid.jqGrid('footerData', 'set', { 'Balance>: colSum' }); } - vikas
@vikas,我觉得你可能混淆了“<”和“>”括号,你的代码应该更像这样:gridComplete: function() { var $grid = $('#UsersGrid'); var colSum = $grid.jqGrid('getCol', 'Balance', false, 'sum'); $grid.jqGrid('footerData', 'set', { Balance: colSum }); } - tpeczek
怎样在总记录上使用点击函数? - Shashank Sharma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接