我正在使用jQuery数据表。在ajax请求之后,我调用ajax.reload()方法来刷新数据表,但我丢失了当前页面。它返回第一页
这是我的DataTables init:
datatable_约会=$(“#datatable_约会”)。datatable({
“响应”:正确,
“处理”:对,
“服务器端”:正确,
“bSort”:错误,
“ajax”:函数(数据、回调、设置){
//使用data.start和data.length发出常规ajax请求
$.get(URL\u API+URL\u约会\u状态+'/'{
限制:data.length,
偏移量:data.start,
搜索:data.search.value
},功能(res){
if(res.error){
回拨({
记录总数:0,
已筛选的记录:0,
数据:“”
});
}否则{
data_约会=res.data;
//将服务器的响应映射到DataTables格式并将其传递给
//数据表的回调
回拨({
recordsTotal:res.total_数据,
已过滤记录:res.total_数据,
数据:res.data
});
$(“#datatable_appoints>;tbody>;tr>;td”).addClass(“文本中心”);
$(“#datatable_-appoints>;tbody>;tr>;td”).css(“垂直对齐”,“中间”);
$(“#datatable_appoints>;thead>;tr>;th”).addClass(“文本中心”);
}
});
},
“栏目”:[
{“数据”:“服务名称”},
{“数据”:“医生信息”},
{“数据”:“患者姓名”,呈现:函数(数据、类型、行、元){
返回row.name+“”+row.name;
}},
{“数据”:“约会日期”,呈现:函数(数据、类型、行、元){
var formattedDate=新日期(第行约会日期);
var day=formattedDate.getDate();
var month=formattedDate.getMonth();
var hours=(formattedDate.getHours().toString().length==1)?“0”+formattedDate.getHours():formattedDate.getHours();
小时数+=':';
小时+=(formattedDate.getMinutes().toString().length==1)?formattedDate.getMinutes()++“0”:formattedDate.getMinutes();
返回日+''+月[月]+,''+小时;
}},
{“数据”:“状态”,呈现:函数(数据、类型、行、元){
如果(row.state==“0”)
返回“<;i class=“fa fa circle font red mint”>;<;/i>;<;br/>;ptal”;
else if(row.state==“1”)
return“<;i class=“fa fa circle font green jungle”>;<;/i>;<;br/>;Onaylı”;
else if(row.state==“2”)
return'<;i class=“fa fa circle font grey salsa”>;<;/i>;<;br/>;Beklemede';
}},
{“数据”:“动作”,呈现:函数(数据、类型、行、元){
如果(row.state==“2”)
返回“<;div class=“btn group btn group circle”>;”+
“<;button type=“button”onclick=“setState(\''+行.id+',\'1\”);“class=“btn btn轮廓绿色btn sm”>;Onayla<;/button>;”+
“<;button type=“button”onclick=“setState(\''+row.id+',\'0\”);“class=“btn btn轮廓红色btn sm”>;ptal Et<;/button>;”+
“<;/div>;”;
其他的
返回“”;
}}
],
“sPaginationType”:“完整编号”,
“语言”:{
“空表”:“Kayıt Bulumanadı”,
“sZeroRecords”:“Bu kriterde sonuçbulunamadı”,
“搜索”:“Bul”,
“sProcessing”:“<;img src=”https://stackoverflow.com/assets/global/img/loading-spinner-blue.gif“/>;”,
“sInfo”:“Toplam<;b>;_<;/b>;veri bulumantadır.”,
“sLengthMenu”:“Gösterilen kayıt sayısıu MENUı”,
“Sinfofilted”:“,
“无罪”:“,
“分页”:{
“sPrevious”:“Önceki”,
“sNext”:“Sonraki”,
“sFirst”:“İlk”,
“sLast”:“儿子”
}
}
});
和同一js文件中的mysetState方法:
函数设置状态(id,状态){
$.ajax({
url:url\u API+url\u约会\u状态+'/'+id,
键入:“put”,
数据:{'state':state},
数据类型:“json”,
成功:功能(响应){
if(response.error){
}否则{
datatable_appoints.ajax.reload();
}
}
});
}
您需要传递保持当前页面的参数,如:
datatable\u appoints.ajax.reload(null,false)
资料来源:https://datatables.net/reference/api/ajax.reload()