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

Jquery 如果datatable中没有可用数据,如何删除搜索和导出按钮,jquery,datatables,Jquery,Datatables,我想删除“搜索”和“导出”(复制、excel、csv、pdf…等) 按钮“如果数据表中没有数据 我可以找到数据表的长度为“0”,但无法找到任何解决方案如何删除按钮和搜索控件 目前datatable显示“无可用数据”,这是我所需要的。我能正确地显示数据表 这就是我迄今为止所尝试的 var table = $('#tblParametersPopUp').dataTable( { dom: 'Bfrt', bPaginate: false, oLanguage: {

我想删除“搜索”和“导出”(复制、excel、csv、pdf…等) 按钮“如果数据表中没有数据

我可以找到数据表的长度为“0”,但无法找到任何解决方案如何删除按钮和搜索控件

目前datatable显示“无可用数据”,这是我所需要的。我能正确地显示数据表

这就是我迄今为止所尝试的

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.
}
var table=$('tblParametersPopUp')。数据表(
{
dom:'Bfrt',
bPaginate:false,
语言:{
搜索:“”
},
按钮:[
{
扩展:“复制”,
文本:“”,
标题:“副本”
},
{
扩展:“excel”,
文本:“”,
标题:Excel
},
{
扩展:“csv”,
文本:“”,
标题:“CSV”
},
{
扩展:“pdf”,
文本:“”,
标题:PDF
},
{
扩展:“打印”,
文本:“”,
标题:“打印”
}
]
//,
////像往常一样初始化参数
//fnInitComplete:函数(){

//if($(this).find('tbody tr').length您可以检查表是否为空,以及是否为空销毁表并使用搜索禁用初始化数据表

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

为此,您可以使用
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);
            }

也许可以试试?$('i').hide();你的意思是说销毁表格,然后在没有搜索和按钮的情况下重新创建?还有其他简单的解决方案吗?像这样,只有我使用来自ajax响应的新数据更新datatable。Downvoter请添加注释,或者更好地添加您的答案,我将删除并向上投票您的答案。