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



我正在使用jQuery Datatables button extension。

       "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
    });

我试过这个,但没有用。我的表丢失了数据。有没有办法实现这一目标?

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

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
});

最新更新