日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

EasyUI-DataGrid之批量删除

發布時間:2025/6/15 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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,//true勾選會選擇行,false勾選不選擇行,?1.3以后有此選項。重點在這里??
  • ????????????????checkOnSelect:?true,?//true選擇行勾選,false選擇行不勾選,?1.3以后有此選項?????????????
  • ????????????????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="";??
  • ????????????//批量獲取選中行的評估模板ID??
  • ????????????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?刪除模板??
  • ????????///?<summary>??
  • ????????///?刪除模板,批量刪除,返回值是布爾值??
  • ????????///?</summary>??
  • ????????///?<returns>返回值是布爾值</returns>??
  • ????????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)??
  • ????????///?<summary>??
  • ????????///?根據條件刪除??
  • ????????///?</summary>??
  • ????????///?<param?name="delWhere">刪除條件</param>??
  • ????????public?void?DelBy(Expression<Func<T,?bool>>?delWhere)??
  • ????????{??
  • ????????????//1查詢要刪除的數據??
  • ????????????List<T>?listDeleting?=?MyBaseDbContext.Set<T>().Where(delWhere).ToList();??
  • ????????????//2將要刪除的數據?用刪除方法添加到?EF?容器中??
  • ????????????listDeleting.ForEach(u?=>??
  • ????????????{??
  • ????????????????MyBaseDbContext.Set<T>().Attach(u);//先附加到?EF容器??
  • ????????????????MyBaseDbContext.Set<T>().Remove(u);//標識為?刪除?狀態??
  • ????????????});??
  • ????????}??
  • ????????#endregion??
  • 解說:依舊是底層類庫,底層使用EF,涉及到lambda表達式,批量刪除實現原理都是一樣的,具體實現自己來做吧。


    總結

    以上是生活随笔為你收集整理的EasyUI-DataGrid之批量删除的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。