Как включить кнопки разбивки таблиц данных на страницы для бесконечных результатов?

#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'
        }