【发布时间】:2016-08-03 22:34:22
【问题描述】:
我正在尝试实现footerCallback 来查找我的分页数据表的一列中所有元素的总和。当我尝试计算所有页面中的总金额时,只计算当前页面中的行总和。我的 footerCallback 代码如下:
"footerCallback": function ( row, data, start, end, display ) {
var api = this.api(), data;
// Remove the formatting to get integer data for summation
var intVal = function ( i ) {
return typeof i === 'string' ?
i.replace(/[\$,]/g, '')*1 :
typeof i === 'number' ?
i : 0;
};
// Total over all pages
total = api
.column( 5 )
.data()
.reduce( function (a, b) {
return intVal(a) + intVal(b);
}, 0 );
// Total over this page
pageTotal = api
.column( 5, { page: 'current'} )
.data()
.reduce( function (a, b) {
return intVal(a) + intVal(b);
}, 0 );
// Update footer
jQuery( api.column( 5 ).footer() ).html(
'$'+pageTotal +' ( $'+ total +' total)'
);
}
此函数与列和 columndef 一起在 ajax 调用中给出。 pageTotal 和 total 都返回相同的值。当我在控制台中尝试table.column( "#header5" ).data(); 命令时,即使它只返回当前页面中的数据。在其中一个网站中,我读到,当服务器端设置为 true 时,data() 和 fnGetData() 仅返回当前页面中的数据。真的吗?如果可以,如何获取其他页面的数据?
【问题讨论】:
标签: javascript jquery pagination datatables