使用按钮集合导出选定的行不在dataTables中

时间:2017-07-18 06:29:40

标签: datatables export

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

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

但我希望有一个下拉列表(csv,copy,print),我可以从中选择将选择的行导出到。我尝试使用集合,如下面的代码。但它导出所有可见行。有人请帮忙

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'
    }
],

1 个答案:

答案 0 :(得分:4)

您定义"仅选择"只需使用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/