Я стараюсь получать сумму каждого столбца и отображать результат в нижнем колонтитуле. Я использую функцию "footerCallback", которую предоставляет Datatables. Однако он не отображает ничего в сноскеDatatables Функция footerCallback не отображает результаты в нижнем колонтитуле
DataTables объясняет
«Обратите внимание, что если таблица не имеет TFOOT элемент, этот обратный вызов не будет уволен.»
Так я добавил TFOOT к столу, так что обратного вызова будет срабатывать
<table id="monthlytable" class="display" cellspacing="0" width="100%">
<thead></thead><tfoot></tfoot></table>
Ответный Funtion:
"footerCallback": function (tfoot, 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)
.data()
.reduce(function (a, b) {
return intVal(a) + intVal(b);
}, 0);
// Update footer
var numFormat = $.fn.dataTable.render.number('\,', '.', 2, '£').display;
$(api.column(3).footer()).html(numFormat(total));
}
Я попытался с помощью "headerCallback"
с тем же кодом как указано выше (изменено для отображения в заголовке), и он отлично работает.
Есть ли причина, почему headerCallback работает, но не footerCallback?