如何解决为什么我在 jQuery 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 个结果。
为什么我有“3、4、5”按钮,而有 29 个结果,而我应该只有 2 页? 当然,如果我有 142 个结果,我需要 8 页...
我想我在这里遗漏了一些很明显的东西......
感谢您的帮助!
====== 编辑 ======
在 @Ashu's answer 之后,我设法在响应中获得了“recordsFiltered”和“recordsTotal”(在我的示例中分别为“20”和“29”)。但是现在,我只有一个按钮(用于第 1 页),而我希望有两个按钮。
解决方法
您的服务器响应必须返回来自数据库的过滤响应中有多少 rows
,以及总共有多少行,以便数据库可以正确设置分页值。
示例响应:
{
"draw": 1,"recordsTotal": 57,// these both are important and must be updated in every response
"recordsFiltered": 20,//
"data": [
[
"Angelica","Ramos","System Architect","London","9th Oct 09","$2,875"
],]
}
如果您需要有关服务器端代码的帮助,您可以编辑或提出新问题。
文档中的更多信息 here
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。