首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务器端DataTables返回额外页面

服务器端DataTables返回额外页面
EN

Stack Overflow用户
提问于 2018-07-25 20:16:13
回答 2查看 219关注 0票数 0

当我调用服务器端DataTables搜索时,我得到一个条目,这是AJAX调用的响应:

代码语言:javascript
复制
{draw: 1, recordsTotal: 1, recordsFiltered: 18,…}
 data: [{...}]
 draw: 1
 recordsFiltered: 18
 recordsTotal: 1

DataTables认识到这一点:

代码语言:javascript
复制
Showing 1 to 10 of 18 entries (filtered from 1 total entries)

这是我当前的配置(我目前正在使用流水线,如下所述:side/pipeline.html)

代码语言:javascript
复制
var table = $('#table').DataTable({
    "processing": true,
    "serverSide": true,
    "ajax": $.fn.dataTable.pipeline({
        url: '/url',
        pages: 5 // number of pages to cache,
    }),
    "pagingType": "full_numbers",
    "columns": columnData,
    "order": [[1, "desc"]]
});

当我在Chrome浏览器控制台中调用table.page.info()时,

代码语言:javascript
复制
{page: 0, pages: 2, start: 0, end: 10, length: 10, …}
end: 10
length: 10
page: 0
pages: 2
recordsDisplay: 18
recordsTotal: 1
serverSide: true
start: 0

基于以前的信息和数据正确搜索的事实,我认为我的服务器端实现是正确的。然而,我不知道是什么原因导致数据显示两个页面,而不是一个每页有十条记录。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-26 12:51:50

希望这能帮助你理解。

recordsTotal用于显示总记录并为记录数量设置分页。Datatable具有基于recordsTotal设置分页的内部功能。

recordsDisplay用于在特定页面上显示记录。

当您单击分页时,服务器端将根据长度和偏移量获取新记录。

因此,代码中的问题是,您的recordsDisplay 是18, recordsTotal 是1。这是不可能的。

recordsDisplay > recordsTotal是不可能的。

票数 1
EN

Stack Overflow用户

发布于 2018-07-26 12:47:02

在重新检查服务器端代码之后,在yash的注释的帮助下,我意识到我切换了recordsTotalrecordsDisplay的返回值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51527015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档