DataTables - CSV仅导出当前行

时间:2016-07-08 09:58:08

标签: javascript jquery datatables

我有以下代码

 <script type="text/javascript">
            $(document).ready(function() {
            $('#example').DataTable( {
                "processing": true,
                "serverSide": true,
                "ajax": "/functions/ajax.asp",
                "ordering": false,
                "bFilter": false,
                "dom": "<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>", // horizobtal scrollable datatable
                buttons: [
                'copy', 'csv', 'excel', 'pdf', 'print'
            ]
                } );
        } );
            </script>

我有大约数百行,但是当我选择CSV等选项时,它只会导出屏幕上的内容。

有什么想法吗?

由于

2 个答案:

答案 0 :(得分:-1)

这里的问题是您正在使用服务器端处理,因此客户端dataTables插件只能访问屏幕上的数据以进行导出!您必须自定义一些内容才能从服务器获取此数据。

查看此帖子以获取快速示例:Server side excel export with DataTable

答案 1 :(得分:-1)

这是DataTables中导出按钮的预期行为。它们总是只导出当前显示在屏幕上的数据。如果您想允许用户导出所有数据(并且不想编写自定义导出功能 - 如果您这样做,请参阅@ Adam的回答),请考虑添加lengthMenu选项你的DataTable。这将允许用户更改每页显示的记录数,这可以让他们显示/导出所有记录。 lengthMenu参数的语法如下。

"lengthMenu": [ [10, 25, 50, -1], [10, 25, 50, "All"] ]

第一个数组显示每个选项要显示的记录数(在本例中为10,25,50和all(-1为all)),第二个数组是应在用户中显示的内容&# 39; s下拉菜单。

有关该主题的详细信息,请参阅this stack overflow question