【问题标题】:Datatables (jQuery) - sum ALL rows数据表(jQuery) - 总结所有行
【发布时间】:2018-01-29 21:04:45
【问题描述】:

我有以下内容,它成功地计算了数据表单页上的总行数。如何获取组中所有行的总和,而不仅仅是任何单个页面上的行?

rowGroup: {
        dataSrc: 0,

        startRender: function (rows, group) {
            var sum = rows
                .data()
                .pluck(3)
                .reduce(function (a, b) {
                    return a + b * 1;
                }, 0);

            return $('<tr/>')
                .append('<td colspan="3">' + group + ' - Total Coverages: ' + sum + '</td>')
        }

  .append('<td colspan="3">' + group + ' - Coverages: ' + totCov + '</td>')
    },

【问题讨论】:

    标签: datatables datatables-1.10


    【解决方案1】:

    我的理解是startRenderendRender中的rows参数只覆盖了当前页面显示的那些行。如果要计算所有行,则需要使用filter() 根据group 过滤表并计算总和。这是一个例子:

        rowGroup: {
          endRender: function ( rows, group ) {
            var filteredData = $('#example').DataTable()
              .rows()
              .data()
              .filter( function ( data, index ) {
                return data[2] == group ? true : false;
              } )
              .pluck(5)
              .sum();
            return group +' ('+rows.count()+' rows on page, $' + filteredData + ' salary total all pages)';
        },
            dataSrc: 2
        }
    

    基本上,它过滤第 2 列,然后从过滤的行中对第 5 列求和。它显示当前页面中的行数以及该组在所有页面上的总工资。

    sum() 方法来自sum() plug-in。您可以在此处查看示例: http://live.datatables.net/fazigehi/1/edit

    【讨论】:

    • 完美。非常感谢。
    猜你喜欢
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 2015-10-12
    • 2015-11-03
    相关资源
    最近更新 更多