我有以下内容,它成功计算了数据表的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>')
},
答案 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