在我们的项目中,不仅仅有单删,还有批量删除,批量删除是为了满足需要删除多条数据的,它比删快很多,而且可以全部删除,或者你选中的数据进行删除。那么批量删除的方法到底难不难呢,其实也不难,个人建议是先把单删的功能做出来先,然后再进行做批量删除功能,批量删除的方法就是单删的方法,代码量也就多一点点就可以实现它的功能了,那么我们首先展示一下视图的代码先
视图代码
function Delete() {
//获取选中行数据
var checkUnit = layuiTable.checkStatus("tabUnits");
console.log(checkUnit);
if (checkUnit.data.length > 0) {
var unitsIds = "";
for (var i = 0; i < checkUnit.data.length; i++) {
unitsIds += checkUnit.data[i].UnitsID + ";";//拼接字符串
}
unitsIds = unitsIds.substring(0, unitsIds.length - 1);
layer.confirm("您确定要删除选中的" + checkUnit.data.length + "条单位信息?", { icon: 3, title: "提示" }, function () {
$.post("delplsc", { UnitsIds: unitsIds }, function (msg) {
//刷新表格
tabUnits.reload();
layer.alert(msg, { icon: 0, title: "提示" });
});
});
}
else {
layer.alert("请选择要删除的数据");
}
}
上面就是视图的代码,看起来很复杂,其实并不复杂,这个功能不管在哪个项目都会有出现的,掌握好它的意义用法,以后用起来也就方便简单很多了。那么接下来再展示一下控制器的代码
控制器代码
public ActionResult delplsc(string UnitsIds)
{
string strMsg = "failed";
int countSuccessDel = 0;//记录删除成功的数据条数
int countFailedDel = 0;//记录删除失败的数据条数
if (!string.IsNullOrEmpty(UnitsIds))
{
//对拼接好的id进行分割
string[] unitsIds = UnitsIds.Split(';');
foreach (string unitsId in unitsIds)
try
{
//将string类型的数据转化为int
int UnitsID = Convert.ToInt32(unitsId);
//学生表
PW_Units dbUnits = (from tbUnits in myModels.PW_Units
where tbUnits.UnitsID == UnitsID
select tbUnits).Single();
myModels.PW_Units.Remove(dbUnits);
//保存数据
myModels.SaveChanges();
countSuccessDel++;
}
catch (Exception)
{
countFailedDel++;
}
{
}
strMsg = strMsg = "总共需要删除" + unitsIds.Length + "条单位信息!其中成功删除" + countSuccessDel + "条,失败" + countFailedDel + "条。";
}
else
{
strMsg = "参数异常";
}
return Json(strMsg, JsonRequestBehavior.AllowGet);
}
这些代码都是已经测试过了的,有需要的可以复制到你们项目中,再稍微修改一下就可以使用的了,因为代码是自己写的,可能写法会不一样,需要的可以参考一下。