如果数据表中没有可用数据,如何删除搜索和导出按钮

时间:2017-02-02 05:04:03

标签: jquery datatables

  

我想删除"搜索"和"导出(copy,excel,csv,pdf ......等)   按钮"如果数据表中没有数据。

我能够找出数据表的长度是" 0"但无法找到任何解决方案如何删除按钮和搜索控件。

目前数据表正在显示"没有数据可用"这对我来说是必需的。我能够正确显示数据表。

这是我到目前为止所尝试过的。

var table = $('#tblParametersPopUp').dataTable(
{
    dom: 'Bfrt',
    bPaginate: false,
    oLanguage: {
        sSearch: '<i class="fa fa-search">&nbsp; </i>'
    },
    buttons: [
                {
                    extend: 'copy',
                    text: '<i class="fa fa-files-o"></i>',
                    titleAttr: 'Copy'
                },
                {
                    extend: 'excel',
                    text: '<i class="fa fa-file-excel-o"></i>',
                    titleAttr: 'Excel'
                },
                {
                    extend: 'csv',
                    text: '<i class="fa fa-file-text-o"></i>',
                    titleAttr: 'CSV'
                },
                {
                    extend: 'pdf',
                    text: '<i class="fa fa-file-pdf-o"></i>',
                    titleAttr: 'PDF'
                },
                {
                    extend: 'print',
                    text: '<i class="fa fa-print"></i>',
                    titleAttr: 'Print'
                }
    ]
    //,
    ////initialization params as usual
    //fnInitComplete: function () {
    //    if ($(this).find('tbody tr').length <= 1) {
    //        $(this).parent().hide();
    //    }
    //}
});
if(table.fnSettings().aoData.length == "0")
{
    //alert('no data');
    //I want to remove the default search and export buttons here.
}

请帮助!

2 个答案:

答案 0 :(得分:0)

为此,您可以使用drawCallback

drawCallback: function (settings) {
                $this.datatable.button(0).enable(settings.json.recordsTotal > 0);
                $this.datatable.button(1).enable(settings.json.recordsTotal > 0);
                $this.datatable.button(2).enable(settings.json.recordsTotal > 0);
            }

答案 1 :(得分:-1)

您可以检查表是否为空,如果为空则销毁表并使用搜索禁用

初始化数据表
$(document).ready(function() {
 var table =$('#example').DataTable( {
        dom: 'Bfrtip',
        buttons: [
            'copyHtml5',
            'excelHtml5',
            'csvHtml5',
            'pdfHtml5'
        ]
    } );
if ( ! table.data().count() ) {
    $('#example').dataTable().fnDestroy();
        $('#example').DataTable( {
        searching: false
    })
}
} );