Я показываю общее количество страниц в нижнем колонтитуле таблицы, а таблица содержит нумерацию страниц. Каждая страница имеет общую сумму соответствующей страницы. В представлении он работает нормально, но в режиме печати отображается неверный итог страницы, он отображает итоговую сумму первой страницы, когда она выходит на печать. Я пробовал следующий код для обновления нижнего колонтитула таблицы. Я попробовал следующий код прямо сейчас, чтобы обновить представление данных. Общее количество страниц отображает нижний колонтитул, но в режиме печати нижний колонтитул страницы не обновляет сумму страниц.
Обновить общее количество страниц в нижнем колонтитуле
"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;
};
//console.log(colno)
for (i = 0; i < colno.length; i++) {
// Total over all pages
total = api.column(colno[i])
.data()
.reduce(function (a, b) {
return intVal(a) + intVal(b);
});
// Total over this page
pageTotal = api.column(colno[i], {
page: 'current'
})
.data()
.reduce(function (a, b) {
//alert(intVal(a) + intVal(b))
return intVal(a) + intVal(b);
}, 0);
// Update footer
if (isNaN(total) == false & total != null) {
$(api.column(colno[i]).footer(0)).html(
'' + parseFloat(pageTotal).toFixed(2) + ' <br>(' + parseFloat(total).toFixed(2) + ')');
}
}
}
Код кнопки печати
buttons: [
{
extend: 'print',
text: '<i class="fa fa-print"></i> <u>P</u>rint',
css:'btn btn-primary button-input',
key: {
key: 'p',
altkey: true
},
message: '',
titleAttr: 'print',
title: '',
header: true,
footer: true,
autoPrint: false,
exportOptions: {
columns: ':visible'
},
customize: function (win) {
$(win.document.body)
.css('font-size', '10pt')
.css('background', '#ffffff')
.prepend(
document.getElementById("hiddenheader").innerHTML
)
.append(
document.getElementById("hiddenfooter").innerHTML
);
$(win.document.body).find('table')
.addClass('compact')
.css('font-size', 'inherit');
}
}]