我有以下代码
<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等选项时,它只会导出屏幕上的内容。
有什么想法吗?
由于
答案 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。