生活随笔
收集整理的这篇文章主要介绍了
EasyUI-DataGrid之批量删除
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
简单介绍一下,涉及到的几个知识点:
1.checkbox,多选
2.前台到后台传值,我用的是字符串拼接,到了后台在拆分的方式
3.批量删除的底层实现
效果图
前台view
[html] view plaincopyprint?
<table id="list_data" class="easyui-datagrid" style="width:1075px;height:300px" cellpascing="0" cellpadding="0" ></table>
[javascript] view plaincopyprint?
$(function () { $('#dg').datagrid({ title: '查询结果', iconCls: 'icon-view', width: 100, height: 'auto', nowrap: false, striped: true, border: true, collapsible: true, fit: true, url: "/EvaluationTemplate/GetData", remoteSort: false, pagination: false, rownumbers: false, singleSelect: false, selectOnCheck: true, checkOnSelect: true, columns: [[ { field: 'ck', checkbox: true, width: '30' }, { field: 'TemplateName', title: '模板名称', width: '100' }, ]], }); });
[javascript] view plaincopyprint?
function deletedata() { var selRow = $('#dg').datagrid('getSelections') if (selRow.length==0) { $.messager.alert("提示", "请选择要删除的行!", "info"); return; }else{ var temID=""; for (i = 0; i < selRow.length;i++) { if (temID =="") { temID = selRow[i].TemplateId; } else { temID = selRow[i].TemplateId + "," + temID; } } $.messager.confirm('提示', '是否删除选中数据?', function (r) { if (!r) { return; } $.ajax({ type: "POST", async: false, url: "/EvaluationTemplate/DelTem?id=" + temID, data: temID, success: function (result) { if (result.indexOf("t") <= 0) { $('#dg').datagrid('clearSelections'); $.messager.alert("提示", "恭喜您,信息删除成功!", "info"); $('#dg').datagrid('reload'); } else { $.messager.alert("提示", "删除失败,请重新操作!", "info"); return; } } }); }); } };
解说:根据本篇博客性质,所以,大家重点看
“ selectOnCheck:true,//true勾选会选择行,false勾选不选择行, 1.3以后有此选项。重点在这里
checkOnSelect: true,//true选择行勾选,false选择行不勾选,1.3以后有此选项 ”这两行代码。听着挺绕,其实就是复选框和选中行的颜色一致。一旦选中,复选框和具体某一行都变。
还有循环写入选中行的模板ID,主要利用选中行,getselections的属性,获取个数,循环写入。
Controller.cs
[csharp] view plaincopyprint?
#region 删除模板 public bool DelTem() { String strTemId= Request.QueryString["id"].ToString(); bool bltem = template.DelTemplate(strTemId); return bltem; } #endregion
解说:controller在这里只是作为一个数据传输的纽带。
服务端
[csharp] view plaincopyprint?
string[] strTemplateId = strTemplateIdAll.Split(','); #region 根据条件删除 void DelBy(Expression<Func<T, bool>> delWhere) public void DelBy(Expression<Func<T, bool>> delWhere) { List<T> listDeleting = MyBaseDbContext.Set<T>().Where(delWhere).ToList(); listDeleting.ForEach(u => { MyBaseDbContext.Set<T>().Attach(u); MyBaseDbContext.Set<T>().Remove(u); }); } #endregion
解说:依旧是底层类库,底层使用EF,涉及到lambda表达式,批量删除实现原理都是一样的,具体实现自己来做吧。
总结
以上是生活随笔为你收集整理的EasyUI-DataGrid之批量删除的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。