在数据表按钮扩展中使用回调函数

时间:2018-04-14 14:31:19

标签: datatables

我正在使用jQuery Datatables按钮扩展。

       "buttons": [
            {
                extend: 'colvis', //column visibility
                className: 'data_export_buttons'
            },
            {
                extend: 'print',
                className: 'data_export_buttons',
                exportOptions: {
                    columns: ':visible'
                }
            },
            {
                extend: 'excel',
                className: 'data_export_buttons',
                exportOptions: {
                    columns: ':visible'
                }
            },
            {
                extend: 'csv',
                className: 'data_export_buttons',
                exportOptions: {
                    columns: ':visible'
                }
            },
            {
                extend: 'pdf',
                className: 'data_export_buttons',
                exportOptions: {
                    columns: ':visible'
                }
            }
        ]

然而,一切正常,我想使用上面的代码作为回调函数。因此,不要在我的所有表格中重复相同的行(我有超过15个),我只需要调用这样的函数:

   var table = $('#table').DataTable({ 
        "paging": true,
        "info": false,
        "ordering": true,
        "columnDefs": [
            { "targets": [0], "orderable": false}
        ],
        export_data() // the call-back function for colvis and export button extensions
    });

我试过这个但是没用。我的桌子丢失了数据。 有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

是的,你不能在那里做回调,但是一个同样整洁的方法就是创建一个变量,比如

myButtons = [
        {
            extend: 'colvis', //column visibility
            className: 'data_export_buttons'
        },
        // snip
    ];

然后,当您创建表时:

   var table = $('#table').DataTable({ 
    "paging": true,
    "info": false,
    "ordering": true,
    "columnDefs": [
        { "targets": [0], "orderable": false}
    ],
    "buttons": myButtons
});