关于easyUI删除表格中的行后,提示删除成功并重新加载表格的方法

来源:互联网 发布:java中权限控制框架 编辑:程序博客网 时间:2024/06/06 05:40

今天调了好几个小时的这段代码,总是发现可以删除行,但是提示老师提示删除失败,但是数据库中确实删除了,经过debugger的调试,问题出在这:

在删除完数据的时候,我是先加载表格中的数据再用ajax调用后台的checkResult方法查看删除结果的,这就造成了ajax每次都去先调用这个checkResult方法,然后再调用删除数据的方法,所以每次当然会提示删除失败(其实已经删除成功了,只是方法执行的顺序不一样,由于ajax异步的原因),最后通过修改代码,调用ajax带着参数去调用删除的方法就行了

 {
                    text: "删除",
                    iconCls: "icon-remove",
                    handler: function () {
                        var i = 0;
                        debugger;
                        $.messager.alert("提示!", "确定删除吗?", "info", function () {


                            var str_id=null;
                            var rows = dataG.datagrid('getChecked');
                            for (var i = 0; i < rows.length; i++) {
                                str_id += "," + rows[i].User_id;
                            }

                                 dataG.datagrid("load", {  "str_id": str_id});        //修改前的位置


                            debugger;
                            $.ajax({       //ajax请求删除结果
                                type: "post",
                                url: "/Manage/CheckDelete",
                                data: { "str_id": str_id },
                                dataType: "json",
                                async: false,
                                success: function (data) {
                                    debugger;
                                    //$.ajaxAlert("提示!", data.Msg);
                                    $.messager.alert("提示!", data.Msg);


                                },
                                error: function (data) {
                                    $.messager.alert("提示!", "异常错误");
                                }
                            });


                            dataG.datagrid("load", {  });                 //修改后的位置




                        })
                              
                    
                    }
                }



后台代码也变动了:

 #region 查询用户信息
        public ActionResult ShowUsers()
        {
            #region 查询用参数
            string str_name = string.Empty;
            string str_nicheng = string.Empty;
            int total;//记录数
            int page = 0; //无搜素条件时,当前页
            int pagesize = 5; //每页显示条数,取条数
            #endregion


            //#region 删除用参数
 
            //string str_ds = Convert.ToString(Request.Form["str_id"]);                   
            //if (str_ds!=null) {
            //    ids = str_ds.Split(',');
            //    bool deledeflag = UserInfoManager.deleUsers(ids);     //修改前在这里调用的业务逻辑层进行的删除
            //     if (deledeflag) {
            //         i = 1;
            //     }
            //     str_ds = null;
            //}
            //#endregion



            List<UserInfo> listUsers = UserInfoManager.getAllUsersList();
            List<UserInfo> listUsersByParams = listUsers;     //用于linq查询
            if (Request.Form["name"] != null && Request.Form["name"].ToString() != "")
            {
                str_name = Request.Form["name"].ToString();
                listUsersByParams = listUsers.Where(user => user.User_name.Contains(str_name)).ToList();   //linq条件,包含查询
            }
            if (Request.Form["nicheng"] != null &&Request.Form["nicheng"].ToString()!="")
            {
                str_nicheng = Request.Form["nicheng"].ToString();
                listUsersByParams = listUsersByParams.Where(user => user.User_nicheng.Contains(str_nicheng)).ToList();   //linq条件,包含查询
            }
            //分页
            if (Request.Form["page"] != null && Request.Form["page"].ToString() != "")
            {
           
                page = int.Parse(Request.Form["page"]);
             
            }
            if (Request.Form["rows"] != null && Request.Form["rows"].ToString() != "")
            {
                pagesize = int.Parse(Request.Form["rows"]);
            }


            total = listUsersByParams.Count;
            listUsersByParams = listUsersByParams.OrderBy(x => x.User_id).Skip((page-1)*pagesize).Take(pagesize).ToList() ;//跳过当前页,其实是跳过多少条数据,取下一页数据
            EasyUiUsersList easyUiUsersList = new EasyUiUsersList
            {
                total = total,
                rows = listUsersByParams,//rows表格中显示的数据
                foot = null
            };


            return Json(easyUiUsersList, JsonRequestBehavior.AllowGet);//允许客户端的所有请求
        }
       #endregion




修改后:



        #region  删除检查
        public ActionResult CheckDelete()
        {
            string[] ids;
            string str_ds = Convert.ToString(Request.Form["str_id"]);
            if (str_ds!=null) {
                ids = str_ds.Split(',');
                bool deledeflag = UserInfoManager.deleUsers(ids);         //修改后在这里调用的业务逻辑层进行的删除
                 if (deledeflag) {
                      str_ds = null;
                      return OperContext.ajaxToJson(AjaxResultStatu.ok, "删除成功");
                }
            }
                

            


            return OperContext.ajaxToJson(AjaxResultStatu.error, "删除失败");
        }
        #endregion

0 0