本例数据库操作使用EF code first;

先利用mvc自带的模板,先生成一个list视图,然后再手动添加复选框和删除按钮

<table>
<tr>
@*在标题行添加一个全选按钮*@
<th>@Html.CheckBox("checkall")
</th>
<th>
用户名
</th>
<th>
密码
</th>
<th>
</th>
</tr>
@foreach (var item in Model)
{
<tr>
@*此处添加复选框,并将ID号绑定到name属性上*@
<td>@Html.CheckBox(item.Uid.ToString())
</td>
<td>
@Html.DisplayFor(modelItem => item.UserName)
</td>
<td>
@Html.DisplayFor(modelItem => item.PassWord)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.Uid }) |
@Html.ActionLink("Details", "Details", new { id = item.Uid })
</td>
</tr>
}
</table>
@*添加一个删除按钮*@
<input type="submit" id="delall" value="删除所选" />

我取消掉了每一行上面的删除按钮,如果需要ajax实现单行删除的同学,请稳步 MVC3学习:利用mvc3+ajax实现删除记录

然后在此页面上编写JUery AJAX实现批量删除。

<script type="text/javascript">
$(function () {
//全选
$("#checkall").click(function () {
$("[type='checkbox']").attr("checked", $(this).attr("checked"));
}); $("#delall").click(function () {
//确定至少选择一项
if ($("[type='checkbox']:checked").length == 0)
alert("请至少选择一项");
//批量删除
else if (confirm("真的要删除所有选择的记录吗???")) {
$("[type='checkbox']:checked").each(function () {
var id = $(this).attr("name");
var tr = $(this).parent().parent();
$.post("delete", { id: id },
function (data) {
if (data == "-1") { alert("删除错误"); return false; }
else $(tr).remove();
});
});
}
});
});
</script>

每一行记录的ID号绑定在了复选框的name属性上,取出来后作为参数传递给控制器的delete方法进行处理。虽然每次只能删除一行记录,但通过JQuery的each方法可以实现循环删除。

然后编写控制器的delete方法

 public ActionResult delete(int id)
{
try
{
if (Request.IsAjaxRequest())
{ Users u = db.Users.Find(id);
db.Users.Remove(u);
int n = db.SaveChanges();
return Content(n.ToString());
}
return Content("-1");
}
catch
{
return View();
}
}

此处利用EF code first的Find()、Remove()、SaveChange()等方法来实现一行记录的删除。利用Request.IsAjaxRequest()来判断是否进行ajax数据传递。

需要注意的是,delete方法的参数名,一定要和ajax传递的参数名一致。

MVC3学习:利用mvc3+ajax实现全选和批量删除的更多相关文章

  1. php--jquery操作全选、批量删除、加减行

  2. AJAX实现弹窗显示详情,全选和批量删除

    以Nation表为例,将Nation表显示在页面上,每一行数据前面加上复选框,后面加上查看详情,点击以弹窗形式显示每一行的数据,并且在表格最后一行加上全选复选框,点击选中全部数据,后面跟一个批量删除按 ...

  3. 关于jquery全选反选 批量删除的一点心得

    废话不多说直接上代码: 下面是jsp页面的html代码: <table id="contentTable" class=""> <thead& ...

  4. angularJS 全选反选批量删除

    <th> <label for="flag"> <span ng-hide="master">全选</span> ...

  5. jquery操作全选、批量删除、加减行

    --------------------------------------------------------------------------------------- html静态页面 --- ...

  6. 利用jQuery实现CheckBox全选/全不选/反选

    转自:http://www.cnblogs.com/linjiqin/p/3148259.html jQuery有些版本中实现CheckBox全选/全不选/反选会有bug,经测试jquery-1.3. ...

  7. Ado.net[登录,增删改查,Get传值,全选,不选,批量删除,批量更新]

    [虽然说,开发的时候,我们可以使用各种框架,ado.net作为底层的东西,作为一个合格的程序员,在出问题的时候我们还是要知道如何调试] 一.增删改查 cmd.ExecuteReader();执行查询, ...

  8. jQuery实现checkbox全选反选及删除等操作

    1.list.html 说明:用checkbox数组Check[]存放每一行的ID值 <div id="con"> <table width="100% ...

  9. c# 全选和批量修改

    //全选 function checkAll(){ var items = document.getElementsByTagName("input"); for(var i =0 ...

随机推荐

  1. CURL模拟表单post提交及相关常用参数的使用(包括提交表单同时上传文件)

    转载自:https://blog.csdn.net/freedomwjx/article/details/43278157 (注:在curl前面加上time如time curl xxx,可以在最后显示 ...

  2. i2c设备驱动注册

      Linux I2C设备驱动编写(二) 原创 2014年03月16日 23:26:50   在(一)中简述了Linux I2C子系统的三个主要成员i2c_adapter.i2c_driver.i2c ...

  3. hdu 5083 有坑+字符串模拟水题

    http://acm.hdu.edu.cn/showproblem.php?pid=5083 机器码和操作互相转化 注意SET还要判断末5位不为0输出Error #pragma comment(lin ...

  4. shell wc -l

    shell 命令之 wc -l 给出一个比较常用的命令: cat * | wc -l 查询当前文件夹下的文件的总行数. 原理就是统计了文件中换行符的数量.

  5. uniGUI 通过SessionList操作另外的登录用户

    参照bbs,写了这个方法,检查是否有同名用户已经登录:procedure TUniMainModule.CheckSameUser(aUserLoginCode: string);var  ASess ...

  6. phpstudy 配置 memcached / memcache

    https://blog.csdn.net/zql898626913/article/details/77309269

  7. Android-Java-引用数据类型参数传递内存图

    首先看一个案例: package android.java.oop04; class Person { public String name; public void showName() { Sys ...

  8. zabbix_server 报警

    ---恢复内容开始--- 记一个zabbix报警. zabbxi版本   zabbix_server监控报警 zabbix busy unreachable poller processes  mor ...

  9. WPF ListBox的进阶使用(二)

    项目中经常使用需要根据搜索条件查询数据,然后用卡片来展示数据.用卡片展示数据时,界面的宽度发生变化,希望显示的卡片数量也跟随变化.WrapPanel虽然也可以实现这个功能,但是将多余的部分都留在行尾, ...

  10. 【转】Windows Server 2016 安装 IIS 服务时提示指定备用源路径

    原文地址:http://www.codingwhy.com/view/973.html 在Windows Serever 2016中安装IIS的时候,遇到以下提示 是否需要指定备用源路径?一个或多个安 ...