我对此线程中发布的问题有一个相同的问题-https://datatables.net/forums/discussion/41210/how-to-get-recordstotal-from-response-header
基本上,我有一个API(我无法控制或修改)向我发送数据数组。我可以通过index
和pageLength
进行分页。我通过使用ajax.data
回调函数来处理了 DataTables 。
问题是,API仅返回数据数组,而其他分页信息(如TotalCount
)在响应标头中发送。在ajax.dataFilter
回调中,我只能访问从服务器返回的数据,而不能访问响应头。
我尝试使用建议的答案,但对我而言它不起作用,我在json
回调中相应地修改了.on('xhr.dt')
对象,但无济于事,分页UI无效能够计算页脚状态。这是代码:
$("#table")
.on('xhr.dt', function (evt, settings, json, xhr) {
var data = json.slice(0); // the array of data i receive from the server. I'm cloning it here
json = {
recordsTotal: parseInt(xhr.getResponseHeader('Total'), 10),
recordsFiltered: parseInt(xhr.getResponseHeader('Filtered'), 10),
data: data
}
})
.dataTable({
columns: colsDef,
scrollX: true,
processing: true,
serverSide: true,
ajax: {
url: url,
async: true,
contentType: "application/json",
data: function (tableData) {
return {
page: 'index-' + tableData.start,
pageSize: tableData.length
}
}
},
searching: false,
iDisplayLength: pageSize,
bLengthChange: false,
pagingType: "full"
});