#javascript #jquery #ajax #datatable
#javascript #jquery #ajax #datatable
Вопрос:
Как настроить Datatable так, чтобы кнопки разбивки на страницы всегда были включены и запускали ajax
метод загрузки данных?
Мои данные слишком велики, чтобы загружать их все сразу, поэтому я использую значение «функция» для параметра «ajax» для вызова пользовательского метода загрузки JSON, который можно вызывать повторно для загрузки следующей страницы результатов.
Я бы хотел, чтобы эта функция запускалась пользователем, нажимающим кнопки «предыдущий» и «следующий». Однако по умолчанию похоже, что Datatables предполагает, что метод «ajax» загружает все данные с первого раза, поэтому, если результаты помещаются в текущую таблицу без необходимости разбивки на страницы, кнопки разбивки на страницы отключены.
Я пытался использовать инспектор браузера, чтобы динамически включать их с помощью атрибута CSS, но, похоже, это только эстетично, и на самом деле они не запускают обратный вызов ajax.
Как мне это исправить? Это вообще что-то, что поддерживается таблицами данных?
Ответ №1:
Вы должны установить serverSide
опцию true
для использования ajax.
Если вы хотите сделать разбивку на страницы и не знаете, сколько у вас записей, вы должны вернуть это в ответе ajax { ... "recordsTotal": Length of table, "recordsFiltered": int.MaxValue, ...}
и использовать info: false
amp; pagingType: 'simple'
options, чтобы скрыть количество записей и показать только кнопки Next и Previous без страниц.
dataTable({
......
processing: true,
serverSide: true,
pagingType: 'simple',
info: false,
lengthMenu: [10, 25, 50, 100, 250, 500, 1000],
searchDelay: 1000,
pageLength: 10,
ajax: {
url: 'url',
type: 'get'
}