DataTables 插件中的列顺序不会改变
Column order doesn't change in DataTables plugin
我想反转从 DataTables 导出数据的列。我寻找方法来做到这一点,最后以这种方式结束:
$(document).ready(function(){
var arrayCol = new Array();
var table = $('#example').DataTable({
dom: 'Bfrtip',
initComplete:function ( ) {
var len = this.api().columns().count();
var array = Array.from(Array(len).keys())
arrayCol = array.reverse();
},
buttons: [
{
extend: 'excelHtml5',
exportOptions: {
columns: ':visible:not(.not-export-col)',
orthogonal: 'export'
}
},
{
extend: 'pdfHtml5',
orientation: 'landscape',
pageSize: 'A4',
exportOptions: {
columns: arrayCol, // this doesn't work
//columns:[5,4,3,2,1,0], //this work
orthogonal: 'export'
}
}
]
});
});
调试时 var arrayCol
有值但导出为 PDF 时 PDF 没有任何列。
也许它没有分配给列或类似的东西。
我认为最简单的方法是在导出数据时反转每个单独的行数组。您可以使用 exportOptions.rows
来执行此操作。
您还需要反转 headers,这可以使用 exportOptions.format.heeader
来完成。在这种情况下,您一次只能访问一个 header 字段,因此构建 header 值的反向数组然后访问该数组中的每个索引位置需要做更多的工作:
$(document).ready(function() {
var table = $('#example').DataTable( {
dom: 'Bfrtip',
buttons: [
{
extend: 'pdf',
text: 'To PDF',
exportOptions: {
rows: function ( idx, data, node ) {
return data.reverse();
},
format: {
header: function ( data, idx, node ) {
var headers = $('#example').DataTable().table().header();
var reversedHeaders = headers.innerText.split('\t').reverse();
return reversedHeaders[idx];
}
}
}
}
]
} );
} );
参考文献:
我想反转从 DataTables 导出数据的列。我寻找方法来做到这一点,最后以这种方式结束:
$(document).ready(function(){
var arrayCol = new Array();
var table = $('#example').DataTable({
dom: 'Bfrtip',
initComplete:function ( ) {
var len = this.api().columns().count();
var array = Array.from(Array(len).keys())
arrayCol = array.reverse();
},
buttons: [
{
extend: 'excelHtml5',
exportOptions: {
columns: ':visible:not(.not-export-col)',
orthogonal: 'export'
}
},
{
extend: 'pdfHtml5',
orientation: 'landscape',
pageSize: 'A4',
exportOptions: {
columns: arrayCol, // this doesn't work
//columns:[5,4,3,2,1,0], //this work
orthogonal: 'export'
}
}
]
});
});
调试时 var arrayCol
有值但导出为 PDF 时 PDF 没有任何列。
也许它没有分配给列或类似的东西。
我认为最简单的方法是在导出数据时反转每个单独的行数组。您可以使用 exportOptions.rows
来执行此操作。
您还需要反转 headers,这可以使用 exportOptions.format.heeader
来完成。在这种情况下,您一次只能访问一个 header 字段,因此构建 header 值的反向数组然后访问该数组中的每个索引位置需要做更多的工作:
$(document).ready(function() {
var table = $('#example').DataTable( {
dom: 'Bfrtip',
buttons: [
{
extend: 'pdf',
text: 'To PDF',
exportOptions: {
rows: function ( idx, data, node ) {
return data.reverse();
},
format: {
header: function ( data, idx, node ) {
var headers = $('#example').DataTable().table().header();
var reversedHeaders = headers.innerText.split('\t').reverse();
return reversedHeaders[idx];
}
}
}
}
]
} );
} );
参考文献: