手机宣传网站,快团团小程序官网,wordpress建站视频教程下载,电脑上自己做科目一的网站开发工具与关键技术#xff1a;Visual Studio、MVC
作者#xff1a;幻奏
撰写时间#xff1a;2019.04.17在页面的数据表格中#xff0c;既然有新增#xff0c;那一定也有删除吧。那MVC是怎么写删除的呢#xff0c;就让我来讲一下吧。 删除一般有删除单条数据和删除多条数…开发工具与关键技术Visual Studio、MVC
作者幻奏
撰写时间2019.04.17在页面的数据表格中既然有新增那一定也有删除吧。那MVC是怎么写删除的呢就让我来讲一下吧。 删除一般有删除单条数据和删除多条数据。相对来说删除单条数据比删除多条的简单因为单条数据不需要循环、拼接和分割。单条数据的删除一般都在数据的后面加一个删除的按钮而批量删除就只有一个按钮。删除单条和批量删除基本都是一样的那么我就只讲批量删除了。 首先我们要在表格上选中要删除的数据然后才能删除。所以我们先用layui插件里的方法获取选中行的相关数据然后再判断是否选中数据没有就提示“请选择要删除的数据”。 //删除function ShanChu() {var checkStatus layuiTable.checkStatus(tabTitles);if (checkStatus.data.length 0) {} else {layer.msg(请选择需要删除的数据, { icon: 0, skin: layui-layer-molv });}}选中数据后我们要if的里面声明一个变量然后在后面用for循环拼接它们的ID。如下
var employeeIds ;for (var i 0; i checkStatus.data.length; i) {employeeIds checkStatus.data[i].EmployeeID ;;//拼接字符串,如1;2;3;}因为每个ID后面都会拼接一个分号所以最后一个ID也会有一个分号。但是我们分割字符串时是根据它后面的分号分割的如果最后也有一个分号那么它就会分割多一个空格出来我们就要想办法把最后的一个分号给去掉。在这里我们就要用到substring这个方法它的用法看下面。
employeeIds employeeIds.substring(0, employeeIds.length - 1);//去掉分号//substring() 方法用于提取字符串中介于两个指定下标之间的字符。//substring(start,stop) 方法返回的子串包括 start 处的字符但不包括 stop 处的字符。[0,studentIds.length-1)去掉最后的分号后我们就要给它拼接提示“你是否要删除多少条信息”并用post请求控制器注意传过去的ID要一样。 layer.confirm(您确定要删除选中的 checkStatus.data.length 条员工信息?,{ icon: 3, title: 提示 }, function () {$.post(/Page/delEmployeeIds, { EmployeeIDs: employeeIds }, function (msg) {//刷新表格tabTitles.reload();layer.alert(msg, { icon: 0, title: 提示 });});});视图那边我们就写完了然后控制器还是老样子先接收视图传过来的ID之后再声明三个变量变量strMrg是用来提示文本的其他两个是用来计算成功或失败的条数。
然后用if else判断传过来的ID是否为null或者为空字符串是就返回“参数异常”不是就进入下面的步骤。
if (!string.IsNullOrEmpty(EmployeeIDs)){}else{strMsg 参数异常;}在里面我们就要对拼接好的ID进行分割并放在自己创建的数组里面然后循环一个个地删除。再后面来个提示成功多少条失败多少条。 //对拼接好的id进行分割string[] employeeIds EmployeeIDs.Split(;); //{1,2,3}foreach (string employeeId in employeeIds)//foreach 循环只适用于数组并用于遍历数组中的每个键/值对{}strMsg 总共需要删除 employeeIds.Length 条员工信息其中成功删除 countSuccessDel 条,失败 countFailedDel 条。;在foreach循环里面我们要把ID从string类型转化成int类型然后用LINQ查询出相同ID的员工信息后就删除它由于有Single所以我们要用try {} catch {}捕捉。删除的核心代码是myModels.PW_Employee.Remove(dbEmployee); 中间写的是它的表括号里的是它查出来的变量。 不要忘了保存 myModels.SaveChanges(); 还要用上面的变量记录下成功和失败的次数。 try{//将string类型的数据转化为intint EmployeeID Convert.ToInt32(employeeId);//删除员工表PW_Employee dbEmployee (from tbEmployee in myModels.PW_Employeewhere tbEmployee.EmployeeID EmployeeIDselect tbEmployee).Single();myModels.PW_Employee.Remove(dbEmployee);myModels.SaveChanges();countSuccessDel;}catch (Exception e){Console.Write(e);countFailedDel;}最后用return返回提示到页面。
return Json(strMsg, JsonRequestBehavior.AllowGet);删除大概的写法就是这样的不过你要考虑一下表与表的关系比如你把员工表里的ID删除了那它的用户表不就多了一些垃圾数据吗所以我们也要把用户表的信息也一起删除掉。 那么我上面就没写完啦所以我们还要在删除员工表的下面写删除用户表。实际是这样写的。 //删除员工表PW_Employee dbEmployee (from tbEmployee in myModels.PW_Employeewhere tbEmployee.EmployeeID EmployeeIDselect tbEmployee).Single();myModels.PW_Employee.Remove(dbEmployee);//获取员工用户IDint? userId dbEmployee.UserID;//删除用户详细表PW_UserRoleDetail dbUserRoleDetail (from tbUserRoleDetail in myModels.PW_UserRoleDetailwhere tbUserRoleDetail.UserID userIdselect tbUserRoleDetail).Single();myModels.PW_UserRoleDetail.Remove(dbUserRoleDetail);//删除用户表PW_User dbUser (from tbUser in myModels.PW_Userwhere tbUser.UserID userIdselect tbUser).Single();myModels.PW_User.Remove(dbUser);myModels.SaveChanges();countSuccessDel;如果它还与什么表有关联自己考虑是否要删除掉它。MVC的删除大概就是这样了,如果有什么写错的麻烦你指出来୧(﹒ᴗ﹒)୨