jquery datatables按钮扩展无法工作(导出到PDF,Excel等)

时间:2015-10-07 21:57:08

标签: excel pdf datatables

我正在尝试让按钮扩展工作,但在尝试初始化表时我一直遇到错误。

包含文件:

<script src="https://cdn.datatables.net/buttons/1.0.3/js/dataTables.buttons.min.js"></script>
<script src="assets/js/pdfmake.min.js"></script>
<script src="assets/js/vfs_fonts.js"></script>
<script src="assets/js/jszip.js"></script>

我也试过包含这些,但我也得到错误,我认为是从原始问题级联。我现在已将它们评论出来了:

https://cdn.datatables.net/buttons/1.0.3/js/buttons.print.min.js
https://cdn.datatables.net/buttons/1.0.3/js/buttons.flash.min.js
https://cdn.datatables.net/buttons/1.0.3/js/buttons.html5.min.js

使用方法1创建表:

$("#generic-list-table").DataTable( {
    dom: 'Bfrtip',
    buttons: [
        'copy', 'excel', 'pdf'
    ]
} );

我在buttons.min.js中收到以下错误:

a.init is not a function

使用第二种方法时:

var table = $('#generic-list-table').DataTable();

new $.fn.dataTable.Buttons( table, {
    dom: 'Bfrtip',
    buttons: [
        'copy', 'excel', 'pdf'
    ]
} );

我收到此错误:

this.c.dom.container is undefined

我正在复制这些例子。我不知道我应该做些什么不同。

3 个答案:

答案 0 :(得分:3)

我使用了示例代码(https://www.datatables.net/extensions/buttons/examples/initialisation/simple.html)并将所有相关引用下载到本地工作,并且运行良好。

选中this link以使用本地文件下载示例。

这是初始化的代码

$(document).ready(function() {
    $('#example').DataTable( {
        dom: 'Bfrtip',
        buttons: [
            'copy', 'csv', 'excel', 'pdf', 'print'
        ]
    } );
} );

答案 1 :(得分:1)

我也遇到了同样的问题,但最终我发现了。您必须以正确的顺序加载所需的文件。

查看此订单是否可以解决您的问题

<script src="/js/jquery-2.1.1.js"></script>
<script src="/js/plugins/dataTables/jquery.dataTables.js"></script>
<script src="/js/plugins/dataTables/dataTables.tableTools.min.js"></script>
<script src="/js/export_data/pdfmake.min.js"></script>
<script src="/js/export_data/dataTables.buttons.min.js"></script>
<script src="/js/export_data/buttons.flash.min.js"></script>
<script src="/js/export_data/vfs_fonts.js"></script>
<script src="/js/export_data/jszip.min.js"></script>
<script src="/js/export_data/buttons.html5.min.js"></script>

我的订单就是这样。似乎有些文件在其他文件中使用变量。

根据您的情况,您需要

<script src="assets/js/pdfmake.min.js"></script>

之前

<script src="https://cdn.datatables.net/buttons/1.0.3/js/dataTables.buttons.min.js"></script>

首先使用jQuery,然后是其他的pdfmake。

答案 2 :(得分:0)

请检查母版页和数据表页中的引用...可能是您的引用文件都可用..从其中一个中删除对我来说是解决问题