2017-07-18 29 views
0

我想从数据表只导出选定的行。通过将扩展选项设置为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' 
    } 
], 

回答

3

您只需使用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/

相关问题