Datatables(jQuery) - 求和所有行

时间:2018-01-29 21:04:46

标签: datatables datatables-1.10

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

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>')
    },

1 个答案:

答案 0 :(得分:1)

我的理解是rows中的startRender参数和endRender仅涵盖当前页面上显示的那些行。如果要计算所有行,则需要使用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