我試圖用我現有的代碼,它適用於單列總和以獲得總和顯示在兩列 - 我試圖把他們在一個數組中,但它不工作。這是不可能使用簡單的數組解決方案嗎?datatables「footerCallback」函數不顯示結果在頁腳中的兩列(僅在一個)
這是https://jsfiddle.net/setbon/3mvmhL1v/
這是JS:
$(document).ready(function() {
var table = $('#example').DataTable({
rowReorder: {
selector: 'td:nth-child(2)'
},
responsive: true,
scrollX: true,
scrollY: "80vh",
scrollCollapse: true,
paging: true,
lengthChange: false,
lengthMenu: [ [10, 25, -1], [10, 25, "All"] ],
"order": [[ 0, "asc" ]],
"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([3,4])
.data()
.reduce(function (a, b) {
return intVal(a) + intVal(b);
}, 0);
// Total over this page
pageTotal = api
.column([3,4], { page: 'current'})
.data()
.reduce(function (a, b) {
return intVal(a) + intVal(b);
}, 0);
// Update footer
$(api.column([3,4]).footer()).html(
total
);
},
buttons: ['pdf']
});
table.buttons().container()
.appendTo('#example_wrapper .small-6.columns:eq(0)');
}); $(document).foundation();
因爲我想總結多個列我現在需要使用額外的插件每https://datatables.net/plug-ins/api/sum()?即使對於該插件,我也找不到一個包含多個專欄的示例,我可以複製並輕鬆進行自定義。
In this SO question該代碼與我所擁有的非常不同,並使我困惑。此外this SO answer is difficult for me to understand and I don't know how to apply to resolve my problem
Eric,對不起,由於某種原因小提琴沒有保存我所做的更新版本。查看新保存的內容:https://jsfiddle.net/setbon/3mvmhL1v/您應該只看到3行,並且總和應該是兩個單獨的總和 - 兩列中不一樣。我把函數調用成了一個複數,但現在我到處都是零。你能再看一次嗎? –
檢查我編輯的答案。 –
現在好,謝謝!只是好奇你爲什麼要把第一部分移動到上面:「$(document).ready(function(){」?不能將格式設置爲求和的整數數據部分放在$ (document).ready(function(){「用於動作工作? –