Как сделать работу нумерации страниц?

Я пытаюсь создать пример Dynatable с разбивкой на страницы, для этого я создал html-файл и json-файл, загруженный с помощью Ajax, прямо из того же каталога, что и html-файл.

Данные отображаются правильно, т. Е. Нижний колонтитул говорит: "Показано 5 из 5 записей (отфильтровано из 45 записей)", это тоже нормально. Проблема в том, что ссылка справа, отображает только 1 страницу, когда должна отображаться 9 страниц.

Это содержание HTML:

<body>
<div class="dynatable-demo">    
<table id="my-ajax-table" class="table table-bordered hoverTable">
<thead>
       <tr>
        <th data-dynatable-column="idturno" data-dynatable-no-sort="true">Id Turno</th>
        <th data-dynatable-column="accessionnumber">Accesion Number</th>
        <th data-dynatable-column="apellidopaterno">Apellido Paterno</th>
       </tr>
</thead>
<tbody>
</tbody>
</table>
</div>

<script>

$('#my-ajax-table').dynatable({
 dataset: {
    ajax: true,
    ajaxOnLoad: true,
    ajaxUrl: 'consulta.json',
    records: [],
    perPageDefault: 5,
    perPageOptions: [5,10,100]
 }
});
</script>

А вот файл "consulta.json":

{
"records": [
    {
        "idturno": "88",
        "accessionnumber": "24471579",
        "apellidopaterno": "DORATO^PABLO EZEQUIEL"
    },
    {
        "idturno": "89",
        "accessionnumber": "0001",
        "apellidopaterno": "apepaterno"
    },
    {
        "idturno": "90",
        "accessionnumber": "0002",
        "apellidopaterno": "apepaterno"
    },
    {
        "idturno": "91",
        "accessionnumber": "0003",
        "apellidopaterno": "apepaterno"
    },
    {
        "idturno": "92",
        "accessionnumber": "0004",
        "apellidopaterno": "apepaterno"
    }
],
"queryRecordCount": 5,
"totalRecordCount": 45
}

2 ответа

У меня тоже возникла та же проблема, после того, как я узнал об этом из источника.

pages = Math.ceil(settings.dataset.queryRecordCount / settings.dataset.perPage)

queryRecordCount делится на perPage, который равен, следовательно, одной странице.

Это должно быть totalRecordCount в этом месте на самом деле. Возможно, проблема была только в аяксе. Измените queryRecordCount с totalRecordCount, и он отлично работает для меня.

После настройки параметров пагинации убедитесь, что ваш JSON возвращает поля 'queryRecordCount' И 'totalRecordCount'.

Добавить это в коде

$('#my-ajax-table').dynatable({
dataset: {
    ajax: true,
    ajaxOnLoad: true,
    ajaxUrl: 'consulta.json',
    records: [],
    perPageDefault: 5,
    perPageOptions: [5, 10, 100]
},
features: {
    paginate: true,
    sort: true,
    pushState: false,
    search: true,
    recordCount: true,
    perPageSelect: true
}

});

Query RecordCount и totalRecordCount одинаковы для этого запроса. Должно быть

"queryRecordCount": 45,
"totalRecordCount": 45

Различается только по отфильтрованным запросам (? Поиск)

Другие вопросы по тегам