2016-01-22 82 views
3

我想知道如何設置自定義文件名導出數據表按鈕excelHtml5與選擇,我做了一個函數來傳遞名稱,但沒有設置它生病發布我的js代碼。提醒它反映了這些變化,但是當我調用數據表中的excel按鈕時就會空着。設置自定義文件名數據表導出excelHtml5與選擇文本

下面是代碼:

var reportName = '24 afterhours '; 
$('#example').DataTable({ 
    dom: 'Bfrtip', 
    buttons: [ 
     { 
     extend: 'excelHtml5', 
     title: reportName 
     }, 
     { 
     extend: 'pdfHtml5', 
     title: 'Data export' 
     } 
    ] 
}); 

$('#campaing').change(function() { 
    reportName += $(this).find(":selected").text() + ' report'; 
}); 

我想我可能失去了一些東西。

回答

4

title被讀取一次當dataTable被初始化時,然後該值被映射到內部config對象。因此,如果要動態更改設置,則必須更改該內部對象,而不要嘗試更改只讀配置設置。

所以做的其他方式 - 創建的<select>事件偵聽器內按鈕init()回調本身。如果你有一個可選的文件名,這樣

<select id="filename"> 
    <option value="filenameA">filename A</option> 
    <option value="filenameB">filename B</option> 
    <option value="filenameC">filename C</option> 
</select> 

一個<select>然後你就可以通過

buttons : [ 
    { 
    extend: 'excelHtml5', 
    title: 'filenameA', //default filename 
    init: function(dt, node, config) { 
     $("#filename").on('change', function() { 
      config.title = this.value; 
     }) 
    } 
}, 

動態改變出口fileName(== title + extension)您可以從內部改變其他配置屬性處理程序也是如此,例如,您可能需要將config.extension更改爲其他內容。


這裏是一個演示 - >https://jsfiddle.net/y8d9zhfv/ 強調這一點很重要,即dataTables.buttons.js 1.3.0或更高是必需的; buttons.html5.js模塊也是如此。所以如果上述不工作升級 - >https://cdn.datatables.net/buttons/

+0

它的工作就像一個魅力,感謝您的建議。 – Cobol