简单介绍一下,涉及到的几个知识点:

1.checkbox,多选

2.前台到后台传值,我用的是字符串拼接,到了后台在拆分的方式

3.批量删除的底层实现

效果图

前台view

  1. <table id="list_data" class="easyui-datagrid" style="width:1075px;height:300px" cellpascing="0" cellpadding="0"    ></table>
  1. $(function () {
  2. $('#dg').datagrid({
  3. title: '查询结果',
  4. iconCls: 'icon-view', //图标
  5. width: 100,
  6. height: 'auto',
  7. nowrap: false,
  8. striped: true,
  9. border: true,
  10. collapsible: true, //是否可折叠
  11. fit: true, //自动大小
  12. url: "/EvaluationTemplate/GetData", //传值
  13. remoteSort: false,
  14. pagination: false,  //分页控件
  15. rownumbers: false,  //行号
  16. singleSelect: false, //允许选择多行
  17. selectOnCheck: true,//true勾选会选择行,false勾选不选择行, 1.3以后有此选项。重点在这里
  18. checkOnSelect: true, //true选择行勾选,false选择行不勾选, 1.3以后有此选项
  19. columns: [[
  20. { field: 'ck', checkbox: true, width: '30' },  //复选框
  21. { field: 'TemplateName', title: '模板名称', width: '100' },  //课程类型名称
  22. ]],
  23. });
  24. });
  1. function deletedata() {
  2. //返回选中多行
  3. var selRow = $('#dg').datagrid('getSelections')
  4. //判断是否选中行
  5. if (selRow.length==0) {
  6. $.messager.alert("提示", "请选择要删除的行!", "info");
  7. return;
  8. }else{
  9. var temID="";
  10. //批量获取选中行的评估模板ID
  11. for (i = 0; i < selRow.length;i++) {
  12. if (temID =="") {
  13. temID = selRow[i].TemplateId;
  14. } else {
  15. temID = selRow[i].TemplateId + "," + temID;
  16. }
  17. }
  18. $.messager.confirm('提示', '是否删除选中数据?', function (r) {
  19. if (!r) {
  20. return;
  21. }
  22. //提交
  23. $.ajax({
  24. type: "POST",
  25. async: false,
  26. url: "/EvaluationTemplate/DelTem?id=" + temID,
  27. data: temID,
  28. success: function (result) {
  29. if (result.indexOf("t") <= 0) {
  30. $('#dg').datagrid('clearSelections');
  31. $.messager.alert("提示", "恭喜您,信息删除成功!", "info");
  32. $('#dg').datagrid('reload');
  33. } else {
  34. $.messager.alert("提示", "删除失败,请重新操作!", "info");
  35. return;
  36. }
  37. }
  38. });
  39. });
  40. }
  41. };

解说:根据本篇博客性质,所以,大家重点看

“  selectOnCheck:true,//true勾选会选择行,false勾选不选择行, 1.3以后有此选项。重点在这里

checkOnSelect: true,//true选择行勾选,false选择行不勾选,1.3以后有此选项        ”这两行代码。听着挺绕,其实就是复选框和选中行的颜色一致。一旦选中,复选框和具体某一行都变。

还有循环写入选中行的模板ID,主要利用选中行,getselections的属性,获取个数,循环写入。

Controller.cs

  1. #region 删除模板
  2. /// <summary>
  3. /// 删除模板,批量删除,返回值是布尔值
  4. /// </summary>
  5. /// <returns>返回值是布尔值</returns>
  6. public bool DelTem()
  7. {
  8. //从前台获取字符串拼接,在这里先不转换成数组
  9. String strTemId= Request.QueryString["id"].ToString();
  10. bool bltem = template.DelTemplate(strTemId);
  11. return bltem;
  12. }
  13. #endregion

解说:controller在这里只是作为一个数据传输的纽带。

服务端

  1. //拆分字符串,放入数组中
  2. string[] strTemplateId = strTemplateIdAll.Split(',');
  3. #region 根据条件删除 void DelBy(Expression<Func<T, bool>> delWhere)
  4. /// <summary>
  5. /// 根据条件删除
  6. /// </summary>
  7. /// <param name="delWhere">删除条件</param>
  8. public void DelBy(Expression<Func<T, bool>> delWhere)
  9. {
  10. //1查询要删除的数据
  11. List<T> listDeleting = MyBaseDbContext.Set<T>().Where(delWhere).ToList();
  12. //2将要删除的数据 用删除方法添加到 EF 容器中
  13. listDeleting.ForEach(u =>
  14. {
  15. MyBaseDbContext.Set<T>().Attach(u);//先附加到 EF容器
  16. MyBaseDbContext.Set<T>().Remove(u);//标识为 删除 状态
  17. });
  18. }
  19. #endregion

解说:依旧是底层类库,底层使用EF,涉及到lambda表达式,批量删除实现原理都是一样的,具体实现自己来做吧。

EasyUI-DataGrid之批量删除的更多相关文章

  1. 【EasyUi DataGrid】批量删除

    DataGrid是我们做网页经常使用到的组件之中的一个,对它的操作也无非是增删改查操作.单条数据的增删改相对来说比較简单.添加.改动能够直接在DataGrid中进行,也能够用弹出框的形式把数据装载在文 ...

  2. 实例:SSH结合Easyui实现Datagrid的批量删除功能

    在我先前的基础上面添加批量删除功能.实现的效果如下 删除成功 通常情况下删除不应该真正删除,而是应该有一个标志flag,但flag=true表示状态可见,但flag=false表示状态不可见,为删除状 ...

  3. easyui datagrid 多行删除问题

    问题: var selected = $("#tbList").datagrid("getSelections"); selected的选中项 会包含上次已删掉 ...

  4. 使用easyui实现列表的批量删除

    使用easyui实现列表的批量删除 首先要做的就是增加一个多选框 <table id="otGrid" nowrap="false" style=&quo ...

  5. asp.net mvc4 easyui datagrid 增删改查分页 导出 先上传后导入 NPOI批量导入 导出EXCEL

    效果图 数据库代码 create database CardManage use CardManage create table CardManage ( ID ,) primary key, use ...

  6. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(18)-过滤器的使用和批量删除数据(伪删除和直接删除)

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(18)-过滤器的使用和批量删除数据(伪删除和直接删除) ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   ...

  7. ASP.NET MVC5+EF6+EasyUI 后台管理系统(82)-Easyui Datagrid批量操作(编辑,删除,添加)

    前言 有时候我们的后台系统表单比较复杂,做过进销存或者一些销售订单的都应该有过感觉 虽然Easyui Datagrid提供了行内编辑,但是不够灵活,但是我们稍微修改一下来达到批量编辑,批量删除,批量添 ...

  8. JAVAEE——BOS物流项目04:学习计划、datagrid、分页查询、批量删除、修改功能

    1 学习计划 1.datagrid使用方法(重要) n 将静态HTML渲染为datagrid样式 n 发送ajax请求获取json数据创建datagrid n 使用easyUI提供的API创建data ...

  9. EasyUI datagrid 删除的时候无法正确找到重复记录row index的问题

    EasyUI datagrid 删除的时候无法正确找到重复记录row index的问题: 如果无法正确找到重复记录的row index,就需要进行注意添加的时候所进行的 操作:如果添加的时候就是添加的 ...

  10. ASP.NET给DataGrid,Repeater等添加全选批量删除等功能

    很多情况下,在管理或者查看列表的时候我们需要很需要“全选”这个功能,这在ASP.NET中是非常容易实现的,下面我就将演示一点小代码实现这一功能.   实现全选的还是js的一个小函数:   [code] ...

随机推荐

  1. 初识sass框架

    编写过页面的开发者都知道css这个东西,究其原意,也就是层叠样式表,我们页面的三大结构,html css javascript,其中html负责主要的页面结构,css就负责主要的页面样式,而我们的js ...

  2. Base64的用法

    如果要对一些图片进行保存,把他的文件名变成乱码,不让用户把他删掉,可以用Base64把他删掉用法如下: //获取访问图片的路径 String path=editText.getText().toStr ...

  3. ng-class css样式

    <style> .error{background-color: red;} .warning{background-color: yellow;} </style> < ...

  4. DDoS攻击

    来自百度百科 分布式拒绝服务攻击编辑 分布式拒绝服务攻击(英文:Distributed Denial of Service,缩写:DDoS)亦称洪水攻击.顾名思义,即是利用网络上已被攻陷的电脑作为“僵 ...

  5. linux c静态链接库与动态链接库

    库函数是我们编程的时候经常用到的,我们协作编程的时候可以将常用的函数封装成库供大家使用,这样能够提高大家的工作效率.对于库函数,它分为动态链接库和静态链接库.对于静态链接库我们必须是连接到可执行文件中 ...

  6. gcc常用的编译选项

    一.程序编译过程 程序编译的时候,要分四个阶段 : 1.预处理阶段,完成宏定义和include文件展开等工作: 2.根据编译参数进行不同程度的优化,编译成汇编代码: 3.用汇编器把汇编代码进一步生成目 ...

  7. 转:11个实用但你可能不知道的Python程序库

    原文来自于:http://www.techug.com/11-python-libraries-you-might-not-know 目前,网上已有成千上万个Python包,但几乎没有人能够全部知道它 ...

  8. ctr预估模型

    http://wenku.baidu.com/course/view/1488bfd5b9f3f90f76c61b8d

  9. Node.js RESTful API

    什么是REST架构? REST表示代表性状态传输.REST是一种基于Web标准的架构,并使用HTTP协议. 它都是围绕着资源,其中每一个组件是资源和一个资源是由一个共同的接口使用HTTP的标准方法获得 ...

  10. seajs打包部署工具spm的使用总结

    相信使用seajs的好处大家都是知道的,接触seajs好像是在半年前,当时还不知道页面阻塞问题,这里不带多余的话了. seajs实现了模块化的开发,一个网站如果分了很多很多模块的话,等开发完成了,发现 ...