当我调用服务器端DataTables搜索时,我得到一个条目,这是AJAX调用的响应:
{draw: 1, recordsTotal: 1, recordsFiltered: 18,…}
data: [{...}]
draw: 1
recordsFiltered: 18
recordsTotal: 1DataTables认识到这一点:
Showing 1 to 10 of 18 entries (filtered from 1 total entries)这是我当前的配置(我目前正在使用流水线,如下所述:side/pipeline.html)
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()时,
{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基于以前的信息和数据正确搜索的事实,我认为我的服务器端实现是正确的。然而,我不知道是什么原因导致数据显示两个页面,而不是一个每页有十条记录。
发布于 2018-07-26 12:51:50
希望这能帮助你理解。
recordsTotal用于显示总记录并为记录数量设置分页。Datatable具有基于recordsTotal设置分页的内部功能。
而recordsDisplay用于在特定页面上显示记录。
当您单击分页时,服务器端将根据长度和偏移量获取新记录。
因此,代码中的问题是,您的recordsDisplay 是18, recordsTotal 是1。这是不可能的。
recordsDisplay > recordsTotal是不可能的。
发布于 2018-07-26 12:47:02
在重新检查服务器端代码之后,在yash的注释的帮助下,我意识到我切换了recordsTotal和recordsDisplay的返回值。
https://stackoverflow.com/questions/51527015
复制相似问题