DataTables自动设置导出标题

时间:2017-08-16 15:25:15

标签: jquery datatables

我在我网站的每个页面上调用了以下.js文件,并自动将表格转换为DataTables:

$.extend( $.fn.dataTable.defaults, {
    "buttons": [
        $.extend( true, {}, buttonCommon, {
            extend: 'excelHtml5',
            exportOptions: {
                columns: ':visible'
            }
        } ),
        $.extend( true, {}, buttonCommon, {
            extend: 'pdfHtml5',
            orientation: 'landscape',
            exportOptions: {
                columns: ':visible'
            }
        } ),
        $.extend( true, {}, buttonCommon, {
            extend: 'print',
            exportOptions: {
                columns: ':visible'
            },
            orientation: 'landscape'
        } )
    ]
} );

//Render datatables
$(document).ready(function() {
    if ($('.data-table').length !== 0)
    {
        $('.data-table').DataTable();
    }
});

当我导出表格(即excelHtml5,pdfHtml5或打印)时,我希望导出的文档标题显示表格的 data-exporttitle 属性(如果表格有这样的属性,或者显示默认值。目前,默认情况下,标题显示页眉标题。

如何修改上述脚本以实现此目的?

如果此信息有任何帮助,我网站上的某些页面包含多个表格。

我的第一反应是添加以下"标题"每个扩展函数中的代码行,但它不起作用:

$.extend( true, {}, buttonCommon, {
    extend: 'pdfHtml5',
    orientation: 'landscape',
    title: $(this).data("export-title")
} ),

1 个答案:

答案 0 :(得分:2)

您可以在buttons.init字面值中使用buttonCommon。表格参考有点隐藏在参数中,但它有效:

var buttonCommon = {
  init: function(dt, node, config) {
    var table = dt.table().context[0].nTable;
    if (table) config.title = $(table).data('export-title')
  },
  title: 'default title'
};

现在,按钮导出将与其关联的表title属性具有相同的data-export-title

用法<table id="example" data-export-title="test">

演示 https://jsfiddle.net/d72vmj2h/1/