Я следовал документации по DataTable и реализовал, как показано ниже, данные возвращаются, но pagiantion не работает должным образом.
Как получить фактический pageNumber (table.page.info (). page) когда я нажимал на номер страницы в правом нижнем углу dataTable и actula pageSize (table.page.info (). length), когда я изменял длину страницы в левом верхнем углу таблицы данных до ajax вызов.
Пример 1: Когда я нажимаю на номер страницы "1", я получаю -
Page Number 0 Page Size 10
Но это должно быть
Page Number 1 Page Size 10
Пример 2: Когда я измените длину страницы "10" на "25", я получаю -
Page Number 0 Page Size 10
Но это должно быть
Page Number 0 Page Size 25
Это означает, что я на шаг позади, Пожалуйста, помогите ....
Вот мой html
<table id="allScholarshipResult" class="table table-striped table-bordered" style="width:100%">
<thead>
<tr>
<th>Id</th>
<th>Scholarship Year</th>
<th>Scholarship Level</th>
<th>Total Candidate</th>
<th>Boy</th>
<th>Girl</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Id</th>
<th>Scholarship Year</th>
<th>Scholarship Level</th>
<th>Total Candidate</th>
<th>Boy</th>
<th>Girl</th>
</tr>
</tfoot>
</table>
Вот этот js
$(document).ready(function() {
var url = 'all';
var pageNumber;
var pageSize;
var table = $('#allScholarshipResult').DataTable({
"processing": true,
"serverSide": true,
"paging": true,
"searching": { "regex": true },
ajax: function ( data, callback, settings ) {
$.ajax({
url: url,
type: 'GET',
data: {
pageNumber: pageNumber,
pageSize: pageSize
},
success: function( response, textStatus, jQxhr ){
pageNumber = table.page.info().page;
pageSize= table.page.info().length;
console.log('Page Number '+pageNumber + ' Page Size ' + pageSize);
callback({
data: response.responseObject.data,
recordsTotal: response.responseObject.recordsTotal,
recordsFiltered: response.responseObject.recordsFiltered
});
},
error: function( jqXhr, textStatus, errorThrown ){
}
});
},
columns: [
{ data: "id" },
{ data: "examYear" },
{ data: "scholarshipLevelId" },
{ data: "candidateTotal" },
{ data: "candidateBoy" },
{ data: "candidateGirl" },
]
});
} );
Ответ от API
{
"recordsTotal": 5,
"recordsFiltered": 5,
"data": [
{
"id": 76,
"examYear": 2020,
"scholarshipLevelId": 1,
"candidateTotal": 0,
"candidateBoy": 0,
"candidateGirl": 0
},
{
"id": 75,
"examYear": 2020,
"scholarshipLevelId": 1,
"candidateTotal": 0,
"candidateBoy": 0,
"candidateGirl": 0
},
{
"id": 74,
"examYear": 2019,
"scholarshipLevelId": 2,
"candidateTotal": 0,
"candidateBoy": 0,
"candidateGirl": 0
},
{
"id": 73,
"examYear": 2019,
"scholarshipLevelId": 1,
"candidateTotal": 0,
"candidateBoy": 0,
"candidateGirl": 0
},
{
"id": 72,
"examYear": 2020,
"scholarshipLevelId": 2,
"candidateTotal": 0,
"candidateBoy": 0,
"candidateGirl": 0
}
]
}