小编典典

如何使用Ajax从数据表导出所有行?

ajax

我在数据表中使用了新功能:“ HTML5导出按钮”。我正在使用Ajax加载数据。

https://datatables.net/extensions/buttons/examples/html5/simple.html

问题在于它仅导出当前显示的页面。

我这样出口:

buttons: [
    {
        extend: 'pdfHtml5',
        text: 'PDF',
        exportOptions: {
            "columns": ':visible',
        }
    },
]

如何导出所有行?


阅读 226

收藏
2020-07-26

共1个答案

小编典典

根据DataTables文档,使用服务器端时无法导出所有行:

关于服务器端处理的特别说明:在服务器端处理模式(serverSide)中使用DataTables时,selector- modifier由于所有处理(排序,搜索等)均在服务器上执行,因此对所选行的影响很小。因此,客户端上唯一存在的行是任何时候表中显示的行,选择器只能选择当前页面上的行。

我通过在长度菜单中添加“ ALL”参数来解决此问题,并训练最终用户在执行PDF(或XLS)导出之前显示所有记录:

var table = $('#example').DataTable({
    serverSide: true,
    ajax: "/your_ajax_url/",
    lengthMenu: [[25, 100, -1], [25, 100, "All"]],
    pageLength: 25,
    buttons: [
        {
            extend: 'excel',
            text: '<span class="fa fa-file-excel-o"></span> Excel Export',
            exportOptions: {
                modifier: {
                    search: 'applied',
                    order: 'applied'
                }
            }
        }
    ],
    // other options
});
2020-07-26