如何在没有数据时阻止jquery dataTable插件添加行和消息

当表中没有数据时,我们的产品所有者希望我们的空表只显示表头。 我似乎无法阻止dataTable创建一个带有“empty …”消息的行。

这是我用来初始化dataTable的代码。 我知道这里有些事情是错的。 我一直在做实验。 🙂

$('#InBox').dataTable({ "bFilter": false, "bPaginate": false, "bLengthChange": false, "bInfo": false, "oLanguage": { "sEmptyTable": '', "sInfoEmpty": '' } }); 

这是我试图在dataTable的init函数中放入的一些代码,但我不知道如何使它工作。

 /* Table is empty - create a row with an empty message in it */ var anRows[0] = document.createElement('tr'); if (typeof oSettings.asStripClasses[0] != 'undefined') { anRows[0].className = oSettings.asStripClasses[0]; } var nTd = document.createElement('td'); nTd.setAttribute('valign', "top"); nTd.colSpan = oSettings.aoColumns.length; nTd.className = oSettings.oClasses.sRowEmpty; if (oSettings.fnRecordsTotal() > 0) { if (oSettings.oLanguage.sZeroFilterRecords.indexOf("_MAX_") != -1) oSettings.oLanguage.sZeroFilterRecords = oSettings.oLanguage.sZeroFilterRecords.replace("_MAX_", oSettings.fnRecordsTotal()); nTd.innerHTML = oSettings.oLanguage.sZeroFilterRecords; } else { nTd.innerHTML = oSettings.oLanguage.sZeroRecords; } anRows[iRowCount].appendChild(nTd); 

试试这个

 $('#InBox').dataTable({ "bFilter": false, "bPaginate": false, "bLengthChange": false, "bInfo": false, "oLanguage": { "sEmptyTable": '', "sInfoEmpty": '' }, "sEmptyTable": "There are no records", }); 

否则你可以试试这个

 $('#InBox').dataTable({ "bFilter": false, "bPaginate": false, "bLengthChange": false, "bInfo": false, "oLanguage": { "sEmptyTable": '', "sInfoEmpty": '' } }); $('.dataTables_empty').html("No record found."); 

老post,但是为了使用搜索引擎寻找正确答案的人们,我是如何完成的。

从dataTables源删除或注释掉以下行:

 anRows[iRowCount].appendChild(nTd); 

在缩小版中,搜索并删除:

 b[i].appendChild(c); 

如果你想删除从datatable插件附加的tbody,你可以试试这个解决方法:

 $('.dataTables_empty').parent().parent().remove(); 

您可以使用oLanguange自定义DataTable插件:

 "oLanguage": { "sZeroRecords": "-Put customized text-", "sEmptyTable": "-Put customized text-" } And if you want to remove those, just put these components into null: "oLanguage": { "sZeroRecords": '', "sEmptyTable": '' } 

希望能帮助到你!

隐藏消息的最新方法是使用语言选项

 $('#loggedMessages').DataTable({ "language": { "emptyTable": ' ', "zeroRecords": ' ' } });