UI层

 <a href="#" onclick="DelData(0);return false;" id="a_del" class="easyui-linkbutton" iconcls="icon-cancel">删除</a>   

UI中js:

  //删除按钮事件
function DelData(id) {
$.messager.confirm('提示', '确认删除?', function (r) {
if (r) {
var selected = "";
if (id <= ) {
$($('#tab_list').datagrid('getSelections')).each(function () {
selected += this.ID + ",";
});
selected = selected.substr(, selected.length - );
if (selected == "") {
$.messager.alert('提示', '请选择要删除的数据!', 'info');
return;
}
}
else {
selected = id;
}
$.post('/DataGrid/GetJson', { "action": "del", "cbx_select": selected }, function (data) {
$.messager.alert('提示', data, 'info', function () { $("#tab_list").datagrid("reload"); });
});
}
});
}

MVC中控制器:

1.action:

  [HttpPost]
public ActionResult GetJson()
{
UserManagerServiceClient client = new UserManagerServiceClient(); string action = string.Empty;
if (Request.Form["action"] != "")
{
action = Request.Form["action"].ToString();
}
switch (action)
{
case "query": //第一次进入页面时查询数据
string JsonString = QueryEmployee(client);
return Content(JsonString.ToString());
case "submit":
string UpdateMsg = UpdateEmployInfo(client);
return Content(UpdateMsg);
case "queryone":
string JsonOneEmployee = QueryOneEmployee(client);
return Content(JsonOneEmployee);
case "del" :
string DelMsg = DelEmployees(client);
return Content(DelMsg);
default:
return Content("");
}

2.DelEmployees()方法:

  /// <summary>
/// 删除员工信息
/// </summary>
/// <param name="client"></param>
/// <returns></returns>
private string DelEmployees(UserManagerServiceClient client)
{
string msg = "删除失败!";
string selectedID = Request.Form["cbx_select"] != "" ? Request.Form["cbx_select"] : "";
if (selectedID != "" && selectedID !="")
{
int delCount = client.DelEmployee(selectedID); // 从服务端返回的删除员工信息的个数
if (delCount > )
{
msg = string.Format("本次共删除了{0}条员工信息!", delCount);
}
} return msg;
}

WCF服务端代码:EF中contains就 好似sql中的in

 /// <summary>
/// 删除员工信息
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public int DelEmployee(string id)
{
int msg = ;
try
{
List<string> strID = id.Split(',').ToList();
List<int> arrayID = strID.ConvertAll(e => int.Parse(e));
using (UserManageDB db = new UserManageDB())
{ using (TransactionScope transaction =new TransactionScope() )
{
foreach (var employee in db.EmployeInfo.Where(e => arrayID.Contains(e.ID)))
{
db.EmployeInfo.Remove(employee);
msg++;
}
db.SaveChanges();
transaction.Complete();
} } return msg;
}
catch (Exception ex)
{
throw ex;
}
}

Entityframework批量删除的更多相关文章

  1. EntityFramework:支持同一事务提交的批量删除数据实现思路

    一切从一段代码说起... 下面一段代码是最近我在对一EF项目进行重构时发现的. protected override void DoRemove(T entity) { this.dbContext. ...

  2. php批量删除

    php批量删除可以实现多条或者全部数据一起删除 新建php文件 显示数据库中内容: <table width="100%" border="1" cell ...

  3. confirm对话框取消后阻止ajax操作、ajax做批量删除

    在做批量删除的时候,需要用confirm弹出一个提示框让用户确认是否删除,点击确定,执行操作,点击取消,取消操作.但是如果使用ajax把选中项的主键值传到处理页面处理时,如果使用下面的方法将confi ...

  4. mybatis批量删除提示类型错误

    一. 这里主要考虑两种参数类型:数组或者集合. 而这点区别主要体现在EmpMapper.xml文件中标签的collection属性: 当collection="array"时,表名 ...

  5. php链接数据库 批量删除 和 注册审核

    理解 :  hiden   value    session   name="a[]"         1.  form  表单上传的 value=" "值   ...

  6. StackExchange.Redis加载Lua脚本进行模糊查询的批量删除和修改

    前言 使用StackExchange.Redis没有直接相关的方法进行模糊查询的批量删除和修改操作,虽然可以通过Scan相关的方法进行模糊查询,例如:HashScan("hashkey&qu ...

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

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

  8. MongoDB学习笔记~大叔分享批量添加—批量更新—批量删除

    回到目录 说它是批量操作,就是说将集合对象一次提交到服务器,并对数据进行持久化,如果您的代码是一次一次的提交,那不算是批量操作!在之前的mongodb仓储中并没有对批量更新和批量删除进行实现,而今天在 ...

  9. jdbc-批量插入、批量删除、批量更新

    一.JDBC的批量插入 JDBC批量插入主要用于数据导入和日志记录因为日志一般都是先写在文件下的等.    我用Mysql5.1.5的JDBC driver 分别对三种比较常用的方法做了测试   方法 ...

随机推荐

  1. backbonejs中的集合篇(一)

    一:集合概念 集合是多个模型,如果把模型model理解为表结构中的行,那么集合collection就是一张表,由多个行组成.我们经常需要用集合来组织和管理多个模型. 二:创建集合 1:扩展Backbo ...

  2. oracle知识点

    创建序列 create sequence a_seq --创建序列名字为 a_seqminvalue 1 -- 最小值为 1maxvalue 99999 --- 最大值为 99999 start wi ...

  3. 使用js给页面显示的图片添加水印效果

    功能描述:使用Jquery 给页面的图片添加 版权信息水印. 这里的水印并不是真的把每一张图片上都添加了水印.而是在图片的上方添加了一个层,层中包含了水印图片效果就像是图片上加了水印. 功能原理:1, ...

  4. [转]BeginInvoke和EndInvoke方法浅析

    开发语言:C#3.0   IDE:Visual Studio 2008   一.C#线程概述   在操作系统中一个进程至少要包含一个线程,然后,在某些时候需要在同一个进程中同时执行多项任务,或是为了提 ...

  5. linux shell 单引号 双引号 反引号的区别

    一.单引号和双引号 首先, 单引号和双引号,都是为了解决中间有空格的问题. 因为空格在linux中时作为一个很典型的分隔符,比如 string1=this is a string,这样执行就会报错.为 ...

  6. EF的Model First

    一,添加ADO.NET实体数据模型(即edmx) 1,添加edmx         新建一个类库项目,项目中添加新项,选择数据/ADO.NET实体数据模型,如下图.   点击添加,实体数据模型向导窗口 ...

  7. 使用Parallel

    Parallel是.net framework为我们封装的用于并行的静态类,它使用起来简单灵活.它为我们提供了三个方法,分别是Invoke,For和ForEach.下面来进行分别演示. Paralle ...

  8. Python Twisted介绍

    原文链接:http://www.aosabook.org/en/twisted.html 作者:Jessica McKellar Twisted是用Python实现的基于事件驱动的网络引擎框架.Twi ...

  9. spring任务计划

    小组 第一次小组会议结果 贾川和刘三龙负责这些任务: 1:4.11 搭配开发必要的环境,vs2010 2:4.12学习windows界面开发的基本知识 3:4.13-4.15 和小组成员讨论软件界面的 ...

  10. (DFS)hdoj1241-Oil Deposit

    #include<cstdio> ][]; ][]={{,},{,-},{,},{-,},{,},{,-},{-,},{-,-}},cnt; void dfs(int x,int y) { ...