Datatable打印插件未在打印视图中呈现相应页面总计

时间:2019-04-29 08:20:30

标签: jquery datatables

我正在表格的页脚显示总计页面,并且表格包含分页。每个页面具有相应页面的总计。在该视图中,它的工作正常,但打印视图不能呈现正确的页面总数,在打印时会显示第一页的总数。我尝试了以下代码来更新表脚。我现在尝试了以下代码来更新数据表视图。页面总数完美地显示了页脚,但在打印视图中,页脚没有更新页面总和。

更新页脚中的页面总数

"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>&nbsp; <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');
     }
 }]

0 个答案:

没有答案