导出带有按钮集合的选定行在数据表中不起作用



我正在尝试仅从数据表中导出选定的行。通过将扩展选项设置为 csv,我可以成功地将选定的行导出到 csv 文件,如下面的代码所示。

buttons: [
'colvis',
'selectAll',
'selectNone',
{
extend: 'csv',
text: 'Export Selected',
exportOptions: {
columns: ':visible:not(.not-exported)',
modifier: {
selected: true
}
},
title: 'Data export'
}
],

但是我想有一个下拉菜单(csv,复制,打印(,我可以选择从中选择将所选行导出到。我尝试使用集合,如下面的代码所示。但它会导出所有可见行。有人请帮忙

buttons: [
'colvis',
'selectAll',
'selectNone',
{
extend: 'collection',
text: 'Export Selected',
buttons: ['copy','csv','print'],
exportOptions: {
columns: ':visible:not(.not-exported)',
modifier: {
selected: true
}
},
title: 'Data export'
}
],

您只需使用rows: '.selected'来定义"仅选定"。但是:即使您使用的是集合,您仍然需要为每个按钮提供设置。即

buttons: ['copy','csv','print'],

应该是

buttons: [
{ extend :'copy',
exportOptions : {
columns: ':visible:not(.not-exported)',
rows: '.selected'
}
...
]

您可以通过重用简单的文本来减少代码量

var exportOptions = {
columns: ':visible:not(.not-exported)',
rows: '.selected'
}

工作示例代码的结尾如下所示:

buttons: [
'colvis',
'selectAll',
'selectNone',
{
extend: 'collection',
text: 'Export Selected',
buttons: [
{ extend : 'copy',
exportOptions: exportOptions
},
{ extend : 'csv',
exportOptions: exportOptions
},
{ extend : 'print',
exportOptions: exportOptions
}
]   
}
]

这是一个演示 ->https://jsfiddle.net/youn7zm4/

最新更新