Подтвердить что ты не робот

Как показать пустое сообщение данных в Datatables

Предположим, что иногда я получаю пустые данные с сервера, я хочу отобразить сообщение "Нет данных" в DataTables?. Как это возможно?

4b9b3361

Ответ 1

Если вы хотите настроить сообщение, отображаемое в пустой таблице, используйте это:

$('#example').dataTable( {
    "oLanguage": {
        "sEmptyTable":     "My Custom Message On Empty Table"
    }
} );

Так как Datatable 1.10 вы можете сделать следующее:

$('#example').DataTable( {
    "language": {
        "emptyTable":     "My Custom Message On Empty Table"
    }
} );

Для полных доступных пользовательских сообщений datatables для таблицы взгляните на следующую ссылку reference/option/language

Ответ 2

Более поздние версии dataTables имеют следующие настройки language (взяты из здесь):

  • "infoEmpty" - отображается, когда в таблице нет записей
  • "zeroRecords" - отображается, когда нет записей, соответствующих фильтрации

например.

$('#example').DataTable( {
    "language": {
        "infoEmpty": "No records available - Got it?",
    }
});

Примечание. Поскольку имена свойств не содержат специальных символов, вы можете удалить кавычки:

$('#example').DataTable( {
    language: {
        infoEmpty: "No records available - Got it?",
    }
});

Ответ 3

По умолчанию вид сетки позаботится, просто передайте пустой набор данных.

Ответ 4

Стоит отметить, что если вы возвращаете данные на стороне сервера, вы должны предоставить атрибут Data, даже если его нет. Он не читает recordsTotal или recordsFiltered, а полагается на счет объекта данных

Ответ 5

Поздно к игре, но вы также можете использовать файл локализации

DataTable предоставляет локализованный файл .json, который содержит ключ sEmptyTable и соответствующее локализованное сообщение.

Например, просто загрузите локализованный файл json по приведенной выше ссылке, а затем инициализируйте свой Datatable следующим образом:

$('#example').dataTable( {
    "language": {
        "url": "path/to/your/json/file.json"
    }
});

ИМХО, это намного чище, потому что ваш локализованный контент находится во внешнем файле.

Этот синтаксис работает для DataTables 1.10.16, я не тестировал предыдущие версии.

Ответ 6

Вы также можете сделать это в initComplete, как показано ниже

"initComplete": function(settings, json) {

        $('.dataTables_empty').html("<span class='label label-danger'>No records found</span>");

    }

Ответ 7

Это просто хорошая идея. что вы можете добавить класс в теле и скрыть/показать таблицу, пока в таблице нет данных. Это прекрасно работает для меня. Вы можете создать собственное сообщение об ошибке "Нет записи найдено", когда в таблице нет записи, вы можете добавить класс "без записи", а когда есть 1 или более записей, вы можете удалить класс и показать данные.

Вот код JQuery.

$('#default_table').DataTable({

    // your stuff here

    "fnFooterCallback": function (nRow, aaData, iStart, iEnd, aiDisplay) {
        if (aiDisplay.length > 0) {
            $('body').removeClass('no-record');
        }
        else {
            $('body').addClass('no-record');
        }
    }
});

Вот CSS

.no-record #default_table{display:none;}

и вот официальная ссылка.

Ответ 8

Я нашел то же самое, но, наконец, я нашел ответ. Надеюсь, этот ответ очень вам поможет.

когда ваш массив пуст, вы можете отправить пустой массив, как

if(!empty($result))
        {
            echo json_encode($result);
        }
        else
        {
            echo json_encode(array('data'=>''));
        }

спасибо