DataTables.Net 给出 7 列的总和
DataTables.Net To Give Sum For 7 Columns
通过阅读 DataTables.net wiki,我发现了如何将总计添加到一列,即下面语法中的第 4 列,所以我相信具有丰富 JQuery 经验的人可以轻松适应显示对我来说第 6 - 12 列的总数。
这是为第 4 列添加总计的基本设置 - 要为其他列添加总计需要更改什么?
https://datatables.net/examples/advanced_init/footer_callback.html
$(document).ready(function() {
$('#example').DataTable( {
"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( 4 )
.data()
.reduce( function (a, b) {
return intVal(a) + intVal(b);
}, 0 );
// Total over this page
pageTotal = api
.column( 4, { page: 'current'} )
.data()
.reduce( function (a, b) {
return intVal(a) + intVal(b);
}, 0 );
// Update footer
$( api.column( 4 ).footer() ).html(
'$'+pageTotal +' ( $'+ total +' total)'
);
}
} );
} );
一些快速重构允许具有任何列号的可调用函数。你会注意到我:
- 将
column 4
所用的功能包装成一个函数
表示要汇总的列的参数 colNum
。
- 然后我将新函数中出现的所有
4
替换为 colNum
和
- 继续调用新创建的函数
定义。
$(document).ready(function() {
$('#example').DataTable({
"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;
};
var totalColumn = function(colNum) {
// Total over all pages
total = api
.column(colNum)
.data()
.reduce(function(a, b) {
return intVal(a) + intVal(b);
}, 0);
// Total over this page
pageTotal = api
.column(colNum, {
page: 'current'
})
.data()
.reduce(function(a, b) {
return intVal(a) + intVal(b);
}, 0);
// Update footer
$(api.column(colNum).footer()).html(
'$' + pageTotal + ' ( $' + total + ' total)'
);
}
totalColumn(6);
totalColumn(7);
//...snip...
}
});
});
通过阅读 DataTables.net wiki,我发现了如何将总计添加到一列,即下面语法中的第 4 列,所以我相信具有丰富 JQuery 经验的人可以轻松适应显示对我来说第 6 - 12 列的总数。
这是为第 4 列添加总计的基本设置 - 要为其他列添加总计需要更改什么?
https://datatables.net/examples/advanced_init/footer_callback.html
$(document).ready(function() {
$('#example').DataTable( {
"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( 4 )
.data()
.reduce( function (a, b) {
return intVal(a) + intVal(b);
}, 0 );
// Total over this page
pageTotal = api
.column( 4, { page: 'current'} )
.data()
.reduce( function (a, b) {
return intVal(a) + intVal(b);
}, 0 );
// Update footer
$( api.column( 4 ).footer() ).html(
'$'+pageTotal +' ( $'+ total +' total)'
);
}
} );
} );
一些快速重构允许具有任何列号的可调用函数。你会注意到我:
- 将
column 4
所用的功能包装成一个函数 表示要汇总的列的参数colNum
。 - 然后我将新函数中出现的所有
4
替换为colNum
和 - 继续调用新创建的函数 定义。
$(document).ready(function() {
$('#example').DataTable({
"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;
};
var totalColumn = function(colNum) {
// Total over all pages
total = api
.column(colNum)
.data()
.reduce(function(a, b) {
return intVal(a) + intVal(b);
}, 0);
// Total over this page
pageTotal = api
.column(colNum, {
page: 'current'
})
.data()
.reduce(function(a, b) {
return intVal(a) + intVal(b);
}, 0);
// Update footer
$(api.column(colNum).footer()).html(
'$' + pageTotal + ' ( $' + total + ' total)'
);
}
totalColumn(6);
totalColumn(7);
//...snip...
}
});
});