我有一个问题,最初在this question中提出。我以为它起作用了,但不是这样。
我正在将数据表v1.10.19与jQuery 3.3.1和Bootstrap 3.3.7结合使用
现在,我的问题是,无论我拥有多少页数据,该寻呼机都会显示一个寻呼按钮(好像所有数据都放在一页上,而没有)。
我的配置对象如下:
{
"processing": true,
"serverSide": true,
"ajax": {
url: url,
type: ajax.requestPOST
},
"order": [[1, "asc"]],
"lengthMenu": [[-1, 500, 1000, 2500, 5000], ["All", 500, 1000, 2500, 5000]],
"columns": eventsSvr.grid.columns,
"columnDefs": eventsSvr.grid.columnDefs,
"language": $.extend({}, appDt.loadingSpinner, appDt.lengthMenuText),
dom: 'ltp'
}
我的返回有效载荷看起来像这样:
{
"draw": 4,
"recordsTotal": 3727,
"recordsFiltered": 500,
"data": [ big data array here ]
}
可以看出,该数据具有3700+行。页面大小为500。但是,网格只有1页。它有500行,并且寻呼机上没有按钮可移至任何后续页面。
因此,用户只能查看前500条记录。
关于寻呼机发生什么的任何想法?
DataTables根据recordsFiltered
和您的页面大小计算页面数。它包含应用过滤后的记录总数。
执行搜索时,recordsFiltered
可能不等于recordsTotal
。
您的服务器端处理程序应在不应用搜索条件的情况下计算记录总数,并在recordsTotal
中将其返回,然后在应用搜索条件后计算记录的总数并在recordsFiltered
中将其返回。
这使DataTables在信息部分显示以下消息:
显示
recordsFiltered
个条目中的1到10(从recordsTotal
个条目中过滤)
您可以在official documentation中以服务器端处理模式阅读更多有关返回数据的正确格式的信息。