DataTable删除之后页面刷新保存在当前页

2019-03-01  本文已影响0人  欧_汤姆

一般情况下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();
    }
上一篇下一篇

猜你喜欢

热点阅读