目前我正在使用带分页的数据表。现在,我最近添加了 Datatable.buttons 库以使用“导出到 Excel”选项。现在,此功能可以正常工作,但由于分页,它仅导出我当前所在页面的前 10 行。现在,如果我删除模型类中的限制,它将导出我想要的所有条目,但它也摆脱了分页,这会降低我的网站性能。以下是我当前获取Datatable数据的AJAX调用代码:
我除了下载所有数据行而无需在 Excel 按钮下载上分页,我也尝试使用导出选项,但仍然下载第一页数据。
`
const table = new DataTable("#ajax-datatables-customers", {
processing: true,
serverSide: true,
dom: "Brt<'row'<'col-4 pt-2'l><'col-4 text-center'i><'col-4 text-center'p>>",
serverMethod: 'post',
buttons: [
{
extend: 'excel',
filename: 'hr_pivot_customers_' + new Date().toISOString().slice(0, 10),
exportOptions: {
modifier: {
page: 'all'
},
columns: [0, 1, 2, 3, 4]
}
},
],
ajax: {
url :'<?php echo $_SERVER['PHP_SELF']; ?>?datatables',
},
columns: [
{ data: 'id'},
{ data: null},
{ data: 'email'},
{ data: 'phone'},
{ data: 'status'},
{ data: 'status'}
],
columnDefs : [
{
targets:1,
data: null,
render: function (data, type, row) {
var firstname = row.firstname;
var lastname = row.lastname;
if (firstname && lastname) {
return firstname + ' ' + lastname;
}
else if (firstname) {
return firstname;
}
else if (lastname) {
return lastname;
}
else {
return '';
}
}
},
],
drawCallback : function( settings ) { }
})
假设您已加载所有必需的数据表js库资源。
请删除下面的行,
serverSide: true
如果您使用 PHP ajax 脚本获取所有数据的数据集,这将工作得很好
(例如,SQL 查询为
SELECT * FROM customers;
)
确保您没有在 PHP 端应用过滤器,否则您需要提供 datatables.php 文件和 HTML 视图文件以供进一步调查。
我已经使用以下版本配置进行了测试:
数据表:2019 年 10 月 1 日
数据表按钮:1.5.6