我想知道如何设置一个自定义文件名以导出数据表按钮excelHtml5中的一个选择,我做了一个函数传递名称,但没有设置它生病了我的js代码。通过警报,它反映了变化,但是当我调用数据表中的excel按钮时,它将变空。
以下是代码:
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';
});
我想我可能会遗漏一些东西。
答案 0 :(得分:5)
title
读取一次,然后将值映射到内部config
对象。因此,如果要动态更改设置,则必须更改该内部config
对象,而不是尝试更改只读配置设置。
反之亦然 - 为<select>
里面的init()
回调本身创建一个事件监听器1>。如果你有<select>
这样的可选文件名
<select id="filename">
<option value="filenameA">filename A</option>
<option value="filenameB">filename B</option>
<option value="filenameC">filename C</option>
</select>
然后,您可以通过
动态更改导出fileName
(== title
+ extension
)
buttons : [
{
extend: 'excelHtml5',
title: 'filenameA', //default filename
init: function(dt, node, config) {
$("#filename").on('change', function() {
config.title = this.value;
})
}
},
您也可以在处理程序中更改其他配置属性,例如,您可能希望将config.extension
更改为其他内容。
这是一个演示 - &gt;的 https://jsfiddle.net/y8d9zhfv/ 强> 需要强调的是,dataTables.buttons.js 1.3.0 或更高是必需的; buttons.html5.js模块也是如此。所以,如果以上不起作用升级 - &gt; https://cdn.datatables.net/buttons/
答案 1 :(得分:0)
您也可以使用文件名配置对象进行设置。 我已经对导出文件使用了此方法,并且在v1.2.1中使用它时,它可以与较早版本的dataTables.buttons.js一起使用,就像这样:
buttons: [
{
extend: 'excel',
filename: function(){
return reportName;
}
}
]
当输入选项更改时,reportName是我要设置的变量。