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

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表达式,批量删除实现原理都是一样的,具体实现自己来做吧。

最新文章

  1. Win10添加简体中文美式键盘的方法
  2. Nginx运行Mono Web (ASP.NET)
  3. POJ 3318 Matrix Multiplication(随机算法)
  4. Asp.net的post提交方式
  5. android 开发如何做内存优化
  6. PKUSC 模拟赛 day1 上午总结
  7. Node.js中的URL
  8. 利用回调实现Java的异步调用
  9. Davinci DM6446开发攻略——linux-2.6.18移植
  10. iOS 9之后Url链接的NSUTF8StringEncoding转码实现
  11. oldboy s21day06
  12. python---文字云
  13. tesorflow - create neural network+结果可视化+加速神经网络训练+Optimizer+TensorFlow
  14. Chrome 浏览器的Secure Shell插件
  15. lunux开放80端口(本地访问不了linux文件可能是这个原因)
  16. python_面向对象魔法方法指南
  17. 10个造型奇特的css3进度条(有的html被编辑器转义了,上面的代码还是OK的)。。。转载
  18. jQuery漏掉的东西
  19. Miller_Rabin(米勒拉宾)素数测试算法
  20. C#中IO操作

热门文章

  1. 在Java控制台模拟dos命令下操作MySQL
  2. 关于Android4.x系统默认显示方向各种修改
  3. 【转】 UITableViewCell的标记、移动、删除、插入
  4. office2010怎么激活
  5. SGU 111.Very simple problem
  6. Java compile时,提示 DeadCode的原因
  7. Android安装 sdk+jdk+Eclipse+Adt开发工具
  8. js获取屏幕(设备)宽高
  9. jQuery常用技巧大放送
  10. JS和jQuery获取节点的兄弟,父级,子级元素