为啥 displayStart (Datatable 1.10) 对我不起作用?
Posted
技术标签:
【中文标题】为啥 displayStart (Datatable 1.10) 对我不起作用?【英文标题】:Why is displayStart (Datatable 1.10) not working for me?为什么 displayStart (Datatable 1.10) 对我不起作用? 【发布时间】:2021-09-25 19:30:27 【问题描述】:我使用的是 Datable (1.10.3),无论我在 diplayStart
字段中设置什么值,服务器请求的 start
参数始终为 0。
这是我的代码:
this.table = $('#table').DataTable(
displayStart: 100,
order: [[0, 'desc']],
processing: true,
serverSide: true,
searching: true,
pageLength: 50,
searchDelay: 1000,
language:
lengthMenu: 'Show _MENU_ records per page'
,
dom: '<"top"il>rt<"bottom"p><"clear">',
ajax:
url: <url>,
type: 'POST',
headers:
authorization: <token>
,
data: function (d)
//setting request data
,
dataSrc: (json) =>
return json.data;
,
error: function (xhr, error, thrown)
if (xhr.status + '' === '401')
location.href = '/';
,
columns: this.getColumns(),
drawCallback: function ()
//some operations
);
如果我像旧版本一样初始化表格,它似乎可以正常工作,如下所示:
this.table = $('#table').dataTable(...
但是这种初始化会破坏代码中其他预先存在的函数调用(如search
和row
)。
谁能建议我哪里出错了,我该如何解决这个问题?
【问题讨论】:
【参考方案1】:我不确定 displayStart 是否适用于服务器端。 我意识到这不是一个理想的解决方案,如果你找不到任何其他可以覆盖管道方法,强制它使用你想要的任何东西:
$.fn.dataTable.pipeline = function ( opts )
return function ( request, drawCallback, settings )
request.start = 20;
return $.ajax(
"type": opts.method,
"url": opts.url,
"data": request,
"dataType": "json",
"success": drawCallback
);
;
以https://datatables.net/examples/server_side/pipeline.html为例
【讨论】:
我遇到了基于此解决方案的问题。设置起始值可以让我获得所需的页面值。但在这种情况下,页码从 1 开始,无法获得之前的结果。你能提出更好的建议吗?以上是关于为啥 displayStart (Datatable 1.10) 对我不起作用?的主要内容,如果未能解决你的问题,请参考以下文章