单条删除与批量删除

                                                                   单条删除与批量删除

 除了新增和修改功能就是删除功能了,很多时候都是同时出现的,删除就是把一些不要的数据删除掉,单条删除就是一条一条的删除一次只能删除一条,批量删除就是多条数据同时一起删除。如果需要几十条数据甚至上百条数据时候,用单条删除就要一条条地删除这样会很麻烦速度又慢,像这种情况使用批量删除就很方便了,把需要删除的数据全选中到一次过就可以删除所有选中的数据了,为什么要用到单条删除和批量删除呢?这得要看项目的要求了,因为有些地方只需要单条删除就可以了,有些地方需要批量删除,还有的单条删除和批量删除同时都有,其实批量删除也是可以单条删除的,不是说批量删除就不可以单条删除了,用批量删除选择一条数据不就是单条删除了吗,只是单条删除和批量删除都调用了同一个方法。删除相对新增和修改来说简单一点,先来看下单条的代码,看看单条的和批量的之间有什么区别吧

//单条删除考生信息

        function delStudent(studentID) {

            layer.confirm("确定要删除该条数据!", { icon: 3, title: "提示" }, function () {

                $.post("delStuInfos", { StudentIds: studentID }, function (msg) {

                    layer.alert(msg, { icon: 0, title: "提示" });

                    //刷新表格

                    tabStudent.reload();

                });

            });

        }

首先就写给个方法方法中要给一个参数用于接收数据,在删除数据前要询问用户是否确定要删除该条数据这样给用户一个好的体验感。如果是用户不小心点击到删除就重要的信息删除了什么也没有提示,这样给用户带来很不好体验。询问后请求数据这里用了jQuery中post() 方法请求数据,$.post() 的第一个参数是请求的 URL ,第二个参数存有请求的状态,第三个参数是回调函数,之后返回一个提示,最后刷新表格。控制器那边的根据id查询到信息删除就可以了。

下面就是批量删除了

///批量删除考生信息

function delStudents() {

   //获取选中行数据

   var checkStatus = layuiTable.checkStatus("tabStudent");

   // console.log(checkStatus);

   if (checkStatus.data.length > 0) {

  var studentIds = "";

  for (var i = 0; i < checkStatus.data.length; i++) {

  studentIds += checkStatus.data[i].studentID + ";";       //拼接字符串  9617;9611;split(;)

                }

     //去掉最后的一个“;”

     //substring() 方法用于提取字符串中介于两个指定下标之间的字符。

 //substring(start,stop) 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。[0,studentIds.length-1)

  studentIds = studentIds.substring(0, studentIds.length - 1);//9617;9611

 layer.confirm("您确定要删除选中的" + checkStatus.data.length + "条学生信息?", { icon: 3, title: "提示" }, function () {

      $.post("delStuInfos", { StudentIds: studentIds }, function (msg) {

                        //刷新表格

                        tabStudent.reload();

                        layer.alert(msg, { icon: 0, title: "提示" });

                    });

                });

            }

            else {

                layer.alert("请选择需要删除的数据");

            }

        }

第一步就是获取到选中行数据,用checkStatus来接收选中的行数,对checkStatus还做一步判断看是有选中数据,根据它的长度来判断如是大于0的证明是有选中,反之小于0的没有选中到,没有选中到就提示用户选择需要删除的数据。有选择的继续行,把已经选择到的数据用for循环提出来拼接字符串,用已经创建好的变量装着,拼接出来字符串是根据(;)来分割的,如果是这样就会多一个(;),所以在这里要一步操作就是把最后一个去掉,用字符串中的substring() 方法来处理。

看一下控制器中的焦点代码吧,也是值得注意的

1.声量这两个变量记录删除成功或失败的条数

            int countSuccessDel = 0;//记录删除成功的数据条数

            int countFailedDel = 0;//记录删除失败的数据条数

2.对页面已经拼接好id进行分割

               //对拼接好的id进行分割

                string[] studentIds = StudentIds.Split(';'); //9617;9611 {"9617","9611",""}

3.这里因为类型不一致所以要把类型转换一下

                        //将string类型的数据转化为int

                        int StudentID = Convert.ToInt32(studentId);//9617

4.这两句是删除的关键代码(核心)

                 //关键代码           

                  myModels.PW_User.Remove(dbUser);

                  myModels.SaveChanges()

以上总结就是这样了

猜你喜欢

转载自blog.csdn.net/weixin_44512123/article/details/89577504