我正在使用Jquery Datatables,并在使用Ajax进行延迟加载时遇到一些问题。
我的问题之一是页数超出了预期的页数。 例如:
我得到了1 to 10 of 82
,我期望页码仅来自1, 2, 3, 4, ..., 8
,但我却遇到了这个问题,而不是1, ..., 9, 10, 11
,它们是活动按钮,根本不显示任何数据。
这是我对数据表设置的示例
$('#table').DataTable({
processing: true,
serverSide: true,
deferLoading: totalData,
ajax: {
url: url,
type: 'GET',
data: { data },
autoWidth: false,
responsive: true,
ordering: false,
scrollX: true,
dom: "Bfrtip",
});
答案 0 :(得分:1)
将pageLength: 10,
添加到 DataTable ,然后重试:
$('#table').DataTable({
processing: true,
serverSide: true,
deferLoading: totalData,
pageLength: 10,
ajax: {
url: url,
type: 'GET',
data: { data },
autoWidth: false,
responsive: true,
ordering: false,
scrollX: true,
dom: "Bfrtip",
});
答案 1 :(得分:0)
如果最初的页数不正确,则totalData
的值无效或不正确。
使用deferLoading
选项时,totalData
的值将确定显示的页面数。
答案 2 :(得分:0)
默认页面长度为10
分页号中的数据不正确,可能是服务器端处理的。
从数据库查询时,您可以检查服务器的网络JSON响应,并确保其遵循Datatable请求参数,尤其是start
和length
。
Datatable Ajax请求参数的示例:
draw: 1
columns[0][data]: id
columns[0][name]:
columns[0][searchable]: true
columns[0][orderable]: true
columns[0][search][value]:
columns[0][search][regex]: false
columns[1][data]: file_name
columns[1][name]:
columns[1][searchable]: true
columns[1][orderable]: true
columns[1][search][value]:
columns[1][search][regex]: false
columns[2][data]: delivery_qty
columns[2][name]:
columns[2][searchable]: true
columns[2][orderable]: true
columns[2][search][value]:
columns[2][search][regex]: false
columns[3][data]: submission_status
columns[3][name]:
columns[3][searchable]: true
columns[3][orderable]: true
columns[3][search][value]:
columns[3][search][regex]: false
order[0][column]: 0
order[0][dir]: asc
start: 0
length: 10
search[value]:
search[regex]: false
action: get_submission_data
_: 1563616425364
响应JSON格式示例:
{"draw":1,"recordsFiltered":0,"recordsTotal":0,"data":[{1,..},{2,..}]}