数据表 (jQuery) - 对所有行求和
Datatables (jQuery) - sum ALL rows
我有以下内容,它成功地计算了数据表单个页面上的总行数。我如何获得组中所有行的总和,而不仅仅是任何单个页面上的总和?
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>')
},
我的理解是startRender
和endRender
中的rows
参数只覆盖当前页面显示的那些行。如果要计算所有行,则需要使用 filter() 根据 group
过滤 table 并计算总和。这是一个例子:
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
我有以下内容,它成功地计算了数据表单个页面上的总行数。我如何获得组中所有行的总和,而不仅仅是任何单个页面上的总和?
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>')
},
我的理解是startRender
和endRender
中的rows
参数只覆盖当前页面显示的那些行。如果要计算所有行,则需要使用 filter() 根据 group
过滤 table 并计算总和。这是一个例子:
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