魔方NewLife.Cube升级v2.0
?魔方是一套集成權(quán)限管理的MVC管理后臺,最具特色功能是模版覆蓋機(jī)制,是XCode實(shí)體類的最佳搭檔!
v2.0.2017.1126 ? 借助Ajax支持高級操作,如:刪除選中、批量啟用禁用等
用戶管理增加批量啟用、批量禁用,看看效果:
選中要操作的行,上方工具欄的批量操作區(qū)域按鈕會從灰變亮,(取消所有選中時該區(qū)域會變灰)。點(diǎn)擊“批量啟用”,后臺發(fā)起Ajax請求到EnableSelect動作,處理完成后顯示提示文本,然后刷新頁面。
根據(jù)魔方的模版覆蓋機(jī)制,在User視圖下增加名為?_List_Toolbar_Batch.cshtml 的視圖
表示在顯示User的列表頁時,使用該視圖覆蓋全局默認(rèn)視圖,(_List_Toolbar_Batch.cshtml的全局默認(rèn)視圖其實(shí)為空)。
該批量操作視圖位于工具欄第二位,左邊是添加按鈕,右邊是查詢條件。
視圖內(nèi)容如下:
@using NewLife.Common; @{var user = ViewBag.User as IUser ?? User.Identity as IUser;var fact = ViewBag.Factory as IEntityOperate;var enableSelect = this.EnableSelect(); } @if (enableSelect) {<button type="button" class="btn btn-purple btn-sm" data-action="enable" data-url="@Url.Action("EnableSelect")" data-fields="keys" disabled>批量啟用</button><button type="button" class="btn btn-purple btn-sm" data-action="enable" data-url="@Url.Action("DisableSelect")" data-fields="keys" disabled>批量禁用</button> }魔方會攔截所有帶有data-action的按鈕和超鏈接,改為ajax向后端發(fā)起請求。
data-fields 表示發(fā)起請求時需要攜帶的參數(shù)所在控件的名字,keys就是每一行開頭checkbox的控件名。
服務(wù)端代碼如下:
/// <summary>批量啟用</summary> /// <param name="keys"></param> /// <returns></returns> [EntityAuthorize(PermissionFlags.Update)] public ActionResult EnableSelect(String keys) {var count = 0;var ids = Request["keys"].SplitAsInt();if (ids.Length > 0){//var list = UserX.FindAll(UserX._.ID.In(ids));Parallel.ForEach(ids, id =>{var user = UserX.FindByID(id);if (user != null && !user.Enable){user.Enable = true;user.Save();Interlocked.Increment(ref count);}});}return JsonRefresh("共啟用[{0}]個用戶".F(count)); }MVC處理keys時只取第一個,不得不改用Request["keys"]。
keys里面就是選中項(xiàng)的主鍵,這里用Parallel并行計算來進(jìn)行批量更新。
來看看后端響應(yīng):
魔方統(tǒng)一了Ajax響應(yīng)格式,result表示成功失敗,data是提示文本,特殊場合還可以響應(yīng)結(jié)構(gòu)化數(shù)據(jù),url表示顯示文本后要跳轉(zhuǎn)的url,[refresh]特指刷新當(dāng)前頁。
?
借助魔方v2.0的Ajax機(jī)制,普通C#工程師可以無需編寫js腳本即可完成各種高級操作!
?
源碼地址:http://git.NewLifeX.com/NewLife/X
海外地址:https://github.com/NewLifeX/X
?
我的博客即將同步至騰訊云+社區(qū),邀請大家一同入駐。
我不相信神話,我只相信汗水!我不相信命運(yùn),我只相信雙手!總結(jié)
以上是生活随笔為你收集整理的魔方NewLife.Cube升级v2.0的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 哈尔滨工程大学自动化学院(四系)复试专业
- 下一篇: CACHE数据库 存储过程