首先上javascript的代碼
<script type="text/javascript"> $(function () { LoadGrid(); }) //加載表格!!! function LoadGrid() { $('#roleGrid').datagrid({ width: 900, striped: true, //交替條紋 fitColumns: true, //防止水平滾動 fit: true,//自動補全 iconCls: "icon-save",//圖標 idField: 'RoleId', //唯一列 url: "GetRoles", dataType: "json", singleSelect: true, //設置為true將只允許選擇一行 loadMsg: '正在拼命加載,請稍後...', rownumbers: false, //顯示行數 pagination: true, //底部分頁工具欄 nowrap: true, //截取超出部分的數據 checkOnSelect: true,//點擊一行的時候 checkbox checked(選擇)/unchecked(取消選擇) pageNumber: 1,//初始化分頁碼。 pageSize: 10, //初始化每頁記錄數。 pageList: [5, 10, 30], //初始化每頁記錄數列表 showFooter: false, //定義是否顯示行底 columns: [[ { field: "RoleId", title: "角色編號", width: 60, align: "center", sortable: "true" }, { field: "RoleName", title: "角色名稱", width: 100, align: "center" }, { field: "RoleRemarks", title: "備注", width: 100, align: "center" }, { field: "IsStatus", title: "狀態", width: 60, align: "center", formatter: function (value, row, index) { if (value == "0") { return "正常"; } else if (value == "1") { return "停用"; } } }, { field: "edit", title: "操作", align: "center", width: 80, formatter: function (value, row, index) { var detail = '<a style="padding:1px;color:black;" onclick="editRole(' + index + ')"><i class="fa fa-edit"></i>編輯</a>'; var deleteBtn = '<a style="color:black;" onclick="delRole(' + index + ')"><i class="fa fa-trash-o"></i>刪除</>'; var setrole = '<a style="color:black;" onclick="setRights(' + index + ')"><i class="fa fa-exclamation-triangle"></i>設置權限</>'; return " " + detail + " | " + deleteBtn + " | " + setrole; } } ]] //列 }); }; function editRole(i) { //編輯按鈕的方法 var rows = $("#roleGrid").datagrid("getRows"); layer.open({ title: false, type: 2, closeBtn: false, area: ['420px', '418px'], skin: 'layui-layer-rim', //加上邊框 content: ['/Admin/ShowForm/EidtRole', 'no'], success: function (layero, index) { var body = layer.getChildFrame('body', index); body.contents().find("#roleId").val(rows[i].RoleId); body.contents().find("#roleName").val(rows[i].RoleName); if (rows[i].RoleRemarks != "-") { body.contents().find("#remarks").val(rows[i].RoleRemarks); } body.contents().find("#isstutas").val(rows[i].IsStatus); } }); } function delRole(i) { //刪除用戶 var rows = $("#roleGrid").datagrid("getRows"); var postData = { roleId: rows[i].RoleId }; layer.confirm('確認刪除該角色?', { btn: ['確認', '取消'], //按鈕 shade: false //不顯示遮罩 }, function (index) { $.ajax({ type: "POST", url: "DeleRole", data: postData, success: function (result) { if (result == "true") { layer.msg("操作成功!", { icon: 6, time: 1000, }, function () { $("#roleGrid").datagrid("reload"); layer.close(index); }); } else if (result == "false") { layer.msg("操作失敗!", { icon: 2 }); } else if (result == "msg") { layer.msg("系統錯誤,請聯系管理員!", { icon: 0 }); } } }); }, function (index) { layer.close(index); }); }
然後是html
<table id="roleGrid"> </table>
最後是控制器的方法(這一部分是最重要的,表格能否顯示數據,全看這一部分)
/// <summary> /// 動態生成表格的數據 /// </summary> /// <param name="page"></param> /// <param name="rows"></param> /// <returns></returns> public JsonResult GetRoles(int? page, int? rows) { page = page == null ? 1 : page; //第幾頁 rows = rows == null ? 1 : rows; //行數 List<role> rList = rService.GetAllRoles(Convert.ToInt32(page), Convert.ToInt32(rows)); List<role> roleList = new List<role>(); for (int i = 0; i < rList.Count; i++) { role r = new role(); r.RoleId = rList[i].RoleId; r.RoleName = rList[i].RoleName; if (string.IsNullOrEmpty(rList[i].RoleRemarks)) { r.RoleRemarks = "-"; } else { r.RoleRemarks = rList[i].RoleRemarks; } r.IsStatus = rList[i].IsStatus; roleList.Add(r); } var json = new { total = rService.GetTotal(), rows = roleList }; return Json(json, JsonRequestBehavior.AllowGet); }
最後的最後是控制器相關的方法
/// <summary> /// 分頁的數據 /// </summary> /// <param name="page"></param> /// <param name="rows"></param> /// <returns></returns> public List<role> GetAllRoles(int page, int rows) { using (diamondEntities entity = new diamondEntities()) { IQueryable<role> role = entity.roles.OrderBy(a => a.RoleId).Skip((page - 1) * rows).Take(rows); List<role> roleList = role.ToList<role>(); if (roleList.Count > 0) { return roleList; } else { return null; } } } /// <summary> /// 獲取總頁數 /// </summary> /// <returns></returns> public int GetTotal() { using (diamondEntities entity = new diamondEntities()) { IQueryable<role> user = entity.roles.Select(m => m); List<role> userList = user.ToList(); return userList.Count; } }
以上就是小編為大家帶來的淺談MVC+EF easyui dataGrid 動態加載分頁表格全部內容了,希望大家多多支持~