Я попытался использовать мой существующий код, который работает для одной суммы столбца, чтобы получить сумму, отображаемую в двух столбцах - я попытался установить их в массиве, но он не работает. Разве не возможно использовать для этого простое решение массива?Функция 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
Эрик, извините, почему Fiddle не сохранил обновленную версию, которую я сделал. См. Недавно сохраненный: https://jsfiddle.net/setbon/3mvmhL1v/. Вы должны увидеть только 3 строки, а суммы должны быть двумя отдельными суммами - не одинаковыми в 2 столбцах. Я сделал функцию вызова множественного числа, но теперь я получаю нули повсюду. Не могли бы вы еще раз взглянуть? –
Проверьте измененный ответ. –
все хорошо сейчас спасибо! Любопытно, почему вы перенесли первую часть выше: «$ (document) .ready (function() {«? Невозможно ли «// Удалить форматирование для получения целочисленных данных для суммирования» после «$ (document) .ready (function() {"для действия для работы? –