一般情况下DataTable做删除操作之后,页面刷新使用table.ajax.reload() 删除成功之后页面会跳转到第一页,如果我们删除的是当页最后一个,那么想实现的功能就是删除成功后跳转到上一页,如果删除的不是最后一个,那么删除成功后刷新在当前页.
function deleteMapPoint(id) {
swal({
title: "删除账号",
text: "<span style='color:#F44336;'>删除操作后该记录将被删除,并且无法恢复</span>",
type: "info",
showCancelButton: true,
confirmButtonColor: "#2196F3",
confirmButtonText: "确定",
cancelButtonText: "取消",
closeOnConfirm: false,
html: true
}, function () {
deleteCallback(id);
});
}
function deleteCallback(id) {
$.ajax({
url : contextPath + "/mapPoint/delete/" + id,
cache : false,
dataType : "json",
success : function(result) {
if (result.code == 1) {
swal({
title : "删除账号",
text : "删除账号成功",
type : "success",
showConfirmButton : false,
timer : 1000
});
if(result.flag==1){
table.page('previous').draw("page");//返回上一页
}
else{
table.draw(false);//刷新停留在当前页,不跳转第一页
}
}
}
});
}
控制器中需要判断一下删除的是不是最后一个
@RequestMapping(value = "/delete/{id}", produces = "application/json;charset=utf-8")
@ResponseBody
public String delete(@PathVariable("id") int id) {
mapPointService.deleteMapPointById(id);
List<MapPoint> mapPoints = mapPointService.getMapPoints();
JSONObject jsonObject = new JSONObject();
if(mapPoints.size()%10==0) {//如果删除的时候余数是0,那就说明要翻页了
jsonObject.put("flag", 1);那就返回一个状态
}
jsonObject.put("code", 1);
jsonObject.put("message", "");
return jsonObject.toString();
}
网友评论