JQuery DataTables在页脚和默认视图中显示总计

时间:2017-08-14 13:35:06

标签: javascript jquery datatables datatables-1.10

我试图使用JQuery Datatables在我的表格的页脚中显示SUM(),默认排序为50.我认为我的问题源于我缺乏JQuery经验,但我不确定。以下是我的语法:

model_parameters.dirs['labels'] = '/labels/'

出现错误:

  

未捕获的TypeError:无法读取未定义的属性'sDefaultContent'       在B(datatables.min.js:sourcemap:92)
      at t.Xb(datatables.min.js:sourcemap:196)
      at t.iterator(datatables.min.js:sourcemap:175)
      在t。 (datatables.min.js:sourcemap:199)
      在t。 (datatables.min.js:sourcemap:179)
      at t.data(datatables.min.js:sourcemap:178)
      at totalColumn(ar-detail-summary:468)
      在n.fn.init.footerCallback(ar-detail-summary:496)
      在datatables.min.js:sourcemap:150
      在Function.map(datatables.min.js:sourcemap:14)

如果我删除这些行(或将它们注释掉),则会显示网格(没有排序和显示按钮)。

$(document).ready(function() {
    $('#example').DataTable({
        dom: 'B<"clear">lfrtip',
        buttons: ['csv', 'excel', 'print'],
        "iDisplayLength": 50,
        footerCallback: function(row, data, start, end, display) {
            var api = this.api(),
                data;
            var intVal = function(i) {
                return typeof i === 'string' ?
                    i.replace(/[\$,]/g, '') * 1 :
                    typeof i === 'number' ?
                    i : 0;
            };
            var totalColumn = function(colNum) {
                // Total over all pages
                total = api
                    .column(colNum)
                    .data()
                    .reduce(function(a, b) {
                        return intVal(a) + intVal(b);
                    }, 0);
                pageTotal = api
                    .column(colNum, {
                        page: 'current'
                    })
                    .data()
                    .reduce(function(a, b) {
                        return intVal(a) + intVal(b);
                    }, 0);
                $(api.column(colNum).footer()).html(
                    '$' + pageTotal + ' ( $' + total + ' total)'
                );
            }
            totalColumn(2);
            totalColumn(3);
            totalColumn(4);
            totalColumn(5);
            totalColumn(6);
            totalColumn(7);
            totalColumn(8);
            totalColumn(9);
        }
    });
});

如何编辑此语法以提供默认排序50,具有“打印”按钮以及向页脚添加总和?

修改
这就是我的表的设置方式,并从MS SQL查询结果中填充

    dom: 'B<"clear">lfrtip',
    buttons: ['csv', 'excel', 'print'],
    "iDisplayLength": 50,

1 个答案:

答案 0 :(得分:0)

据我所知,这个答案的引用是正确的:Change the default number of rows to display on one "page"

根据DataTables的版本,在回答stackoverflow问题时列出了三种可能的解决方案。

我尝试从上方导入您的代码,我的DataTable内容显示,但在控制台中,按钮打印只有一个错误。如果你仍然会挣扎,请添加评论,我会看看我能做些什么。

希望这有帮助!