【发布时间】:2021-04-16 15:15:20
【问题描述】:
我在使用服务器端请求分页的 DataTables 上遇到问题。
看起来分页按钮的数量与我的结果无关。 无论我有多少结果,我总是有第 1、2、3、4、5 页的按钮。
我的数据表定义:
$('#tableau_reponses').DataTable({
"ajax": {
url: '/my_api/get_reponses_ajax',
type: 'post',
data: formData
},
"paging": true,
"searching": false,
"bProcessing": true,
"serverSide": true,
"ordering": false,
"info": false,
"pagingType": "numbers",
"pageLength": 20,
"lengthMenu": [10, 20, 50, 100],
'order': [[1, 'asc']],
'columnDefs': [
{
'targets': 0,
'orderable': false,
'className': 'dt-body-center',
'render': function (data, type, full, meta){
return '<input type="checkbox" name="id[]" value="' + $('<div/>').text(data).html() + '">';
}
},
{
'targets': 1,
'render': function (data) {
return '<td class="response_state_folder"></td>';
}
}
],
});
在我的测试环境中,我知道我有 29 个结果。我的 pageLength 设置为 20。 所以默认情况下,在第 1 页,我有 20 个结果。当我选择第 2 页时,我有 9 个结果。到目前为止,一切都很好。 但是当我选择第 3、4 或 5 页时(我不应该这样做),我得到 0 个结果。
当我有 29 个结果时,我应该只有 2 个页面,为什么我有“3、4、5”按钮? 当然,如果我有 142 个结果,我需要 8 页...
我想我在这里遗漏了一些非常明显的东西......
感谢您的帮助!
===== 编辑 =====
在@Ashu's answer 之后,我设法在我的回复中获得了“recordsFiltered”和“recordsTotal”(在我的示例中分别为“20”和“29”)。但现在,我只有一个按钮(用于第 1 页),而我希望有两个。
【问题讨论】:
标签: javascript jquery datatables pagination