【问题标题】:Data Table with AJAX, sum and add total footer带有 AJAX 的数据表,求和并添加总页脚
【发布时间】:2019-01-08 11:27:59
【问题描述】:

我有一个由以下代码创建的数据表

    var data = results.rows;
    var column_names = results.headers;

    if (column_names) {
        var columns = [];
        var total = 0;
        for (var i = 0; i < column_names.length; i++) {
             columns[i] = {
                  'title': column_names[i],
                  'data': i
            }
        };

        dataTable=$('#report').DataTable( {
            columns: columns,
            data: data,
            paging: false,
            dom: 'Bfrtip',
            buttons: [
                'copy', 'csv', 'excel', 'pdf', 'print'
            ]
        }
        );
        showTable();
        dataTable.columns.adjust().draw();
    } else {
        alert('No Results Found');
    }

我想在表中添加一个页脚,该表包含第二列的总和,并有文字显示“总计:”

html中的表格如下:

    <table id="report" class="compact"> 
    </table>

我尝试在 html 中添加页脚,但在重新运行报表时它被覆盖,因此需要在代码的顶部完成此操作,以便在每次创建表时显示。

提前致谢:)

【问题讨论】:

    标签: javascript html ajax datatable datatables


    【解决方案1】:

    我在这里找到了一个例子http://jsbin.com/putiyep/edit?js

    它看起来不会像您希望的那样漂亮,但它会完成工作。 它利用 API 的 footerCallback 并使用表的列索引和基本数学来返回您的总数。

    代码的数据表部分如下所示:

    dataTable=$('#report').DataTable( {
            columns: columns,
            data: data,
            paging: false,
            dom: 'Bfrtip',
            "footerCallback": function (tfoot, data, start, end, display) {
                var api = this.api();
                var p = api.column(2).data().reduce(function (a, b) {
                    return a + b;
                }, 0)
                $(api.column(2).footer()).html("Total: "+p);
            },
            buttons: [
                'copy', 'csv', 'excel', 'pdf', 'print'
            ]
        }
    );
    

    【讨论】:

    • 我将代码粘贴进去,出现错误“DataTables warning: table id=report - Cannot reinitialise DataTable。有关此错误的更多信息,请参阅datatables.net/tn/3
    • 浏览器中的控制台返回错误“Uncaught TypeError: Cannot read property 'sDefaultContent' of undefined”可能是因为输入了 BigDecimal 数据?
    • 没关系,我必须更改列编号!效果很好,谢谢!
    猜你喜欢
    • 2017-03-03
    • 2018-11-13
    • 2015-08-28
    • 1970-01-01
    • 2013-02-28
    • 2023-04-08
    • 2018-04-17
    • 2017-07-27
    • 1970-01-01
    相关资源
    最近更新 更多