我试图将下载按钮添加到表中,但是这样做时,列搜索功能中断,并且按钮不显示。我还尝试使用DOM来实现按钮,但是这取代了我的表格大小下拉菜单。

$(document).ready(function() {
    var table = $('#myTable').DataTable({
        "buttons": [
            "copy",
            "csv",
            "xls",
            "pdf"
        ]
    });
    $('#search-category').on('change',function(){
        table
        .column(3)
        .search(this.value)
        .draw();
    }),
    $('#search-sub-category').on('change',function(){
        table
        .column(4)
        .search(this.value)
        .draw();
    })
} );


(不带按钮:https://jsfiddle.net/jkczwtbt/
有什么我不理解文档的地方吗?

https://datatables.net/reference/button/excel
https://datatables.net/reference/option/buttons.dom

最佳答案

您错过了两件事。


您不要求DataTables将按钮实际插入DOM中。这就是为什么他们不露面。


您必须在“ dom”选项中添加大写字母“ B”。有关更多信息和其他实现方法,请参见Buttons Extansion上的“显示按钮”部分。

$('#myTable').DataTable( {
dom: 'Bfrtip',
buttons: [
    'copy', 'excel', 'pdf'
]


});


您没有使用正确的预定义选项,这是代码中断的原因。您必须使用“ excel”而不是“ xls”选项。


如果要将Excel按钮的默认按钮名称更改为XLS,则必须以其他方式启动按钮。请参见Examples on the Buttons reference page。一种方法是这样做:

$('#myTable').DataTable( {
buttons: [
    {
        extend: 'excel',
        text: 'XLS'
    }
]


});

您可以在JSFiddle上找到工作结果。

var table = $('#myTable').DataTable({
  dom: 'Bfrtip',
  buttons: [
    'copy',
    {
        extend: 'excel',
        text: 'XLS'
    }
  ]
 });

07-26 09:07
查看更多