Как я могу запретить плагину jQuery dataTable добавлять строку и сообщение, когда нет данных

наш владелец продукта хотел бы, чтобы наши пустые таблицы отображали только заголовок таблицы, когда в таблице нет данных. Кажется, я не могу запретить dataTable создавать строку с "пустым"..." сообщение.

вот код, который я использую для инициализации dataTable. Я знаю, что здесь что-то не так. Я экспериментировал. :)

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

вот некоторый код, который я пытался ввести в функцию init dataTable, но я не уверен, как его получить работа.

/* 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);

Дэн

5 ответов


попробуй такое

$('#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.");

старый пост,но ради людей, использующих поисковые системы, ищущих правильный ответ, вот как я достиг.

удалить или прокомментировать следующую строку из источника dataTables:

anRows[iRowCount].appendChild(nTd);

в уменьшенной версии найдите и удалите:

b[i].appendChild(c);

Если вы хотите удалить tbody attacched из плагина datatable, вы можете попробовать это обходное решение:

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

вы можете настроить плагин DataTable с помощью oLanguange:

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