Как сделать работу нумерации страниц?
Я пытаюсь создать пример 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
Различается только по отфильтрованным запросам (? Поиск)