如何在数据表中更改导出文件名动态?

时间:2016-01-10 07:58:02

标签: button datatables export filenames

 $("#dataTable").DataTable({                    
                    dom: 'Bfrtip',
                    buttons: [
                             { extend: 'excel', text:'export to excel',title:'1'},
                    ],
})

我可以通过以下代码更改按钮的文字,但我无法获得title属性。

var table= $("#dataTable").DataTable();
tabele.button(0).text('excel');

2 个答案:

答案 0 :(得分:3)

一旦在对象中设置并且初始化了数据表,就无法对其进行更改。你可以通过init上的页面元素动态设置它。

("#dataTable").each( function(index) {
    var exportTitle = $("#somePageElement").text();
    $(this).DataTable({
        dom: 'Bfrtip',
        buttons: [
            {
                extend: 'excel',
                title: exportTitle 
            },
            {
                extend: 'pdf',
                title: exportTitle 
            }
        ]
    });

这篇文章对如何处理这个问题提出了很好的建议。 Setting up a custom file name datatables export excelHtml5 with a select text

答案 1 :(得分:2)

在我的情况下,我必须覆盖按钮的动作,添加一些内容来更改标题,然后调用原始按钮方法。

在此示例中扩展CSV:

 $("#dataTable").DataTable({                    
    dom: 'Bfrtip',
    buttons: [
        {extend: 'csv', 
        text:'export to csv',
        title:'1',
        action: function(e, dt, button, config) {
        config.title = "New title";

        // This checks whether the HTML5 or flash version needs
        // to be called, so it's not needed if the button you are using 
        // doesn't have that distinction
        if ($.fn.dataTable.ext.buttons.csvHtml5.available( dt, config )) {
            $.fn.dataTable.ext.buttons.csvHtml5.action(e, dt, button, config);
        }
        else {
            $.fn.dataTable.ext.buttons.csvFlash.action(e, dt, button, config);
        }
    }}
    ]
})