首先上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 "&nbsp;&nbsp;" + detail + "&nbsp;|&nbsp;" + deleteBtn + "&nbsp;|&nbsp;" + 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 动态加载分页表格的更多相关文章

  1. 【第一篇】说说MVC+EF easyui dataGrid 动态加载分页表格

    首先上javascript的代码 <script type="text/javascript"> $(function () { LoadGrid(); }) //加载 ...

  2. EasyUI datagrid动态加载json数据

    最近做一个项目,要求是两张张表可能查找出10多种不同的结果集. 如果想只用一个表格就把全部的结果不同的显示出来那么就肯定不同使用固定的字段名字,要通过动态加载后台返回来的数据把它显示出来就必须动态加载 ...

  3. jquery easyui datagrid 动态 加载列

    实现方式: 首先根据输入的sql语句获得相关的列名称返回给前台,然后在datagrid中动态加载列,接着根据查询条件(包括sql语句)获取相关的记录返回给前台用于填充datagrid.从而实现类似or ...

  4. easyui datagrid 动态加载数据 渲染问题,表格错位问题

    $('#dg').datagrid({ url:'datagrid_data.json', columns:[[ {field:'code',title:'Code',width:100}, {fie ...

  5. EasyUI datagrid 动态加载表头和数据

    首先返回到页面的需要是JSON数据: 第一步: 遍历表头,插入到array中 for (var i = 0; i < jsonObj.title.length; i++) { //把返回的数据封 ...

  6. 在MVC应用程序中动态加载PartialView

    原文:在MVC应用程序中动态加载PartialView 有时候,我们不太想把PartialView直接Render在Html上,而是使用jQuery来动态加载,或是某一个事件来加载.为了演示与做好这个 ...

  7. easyui datagrid 异步加载数据时滚动条有时会自动滚到最底部的问题

    在使用easyui 的datagrid异步加载数据时发现滚动条有时会自动滚到最底部.经测试发现,如果加载数据前没有选中行则不会出现这个问题.这样我们可以在重新异步加载数据前取消选中行就可以避免这个问题 ...

  8. 【第十一篇】这一篇来说说MVC+EF+easyui datagrid的查询功能

    老规矩 直接上代码 <form class="form-horizontal"> <div class="box-body"> < ...

  9. EasyUI datagrid easyui datagrid +dialog 加载 可直接运行 七

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta ht ...

随机推荐

  1. IIS 上发布ASP.NET5

    原文 http://docs.asp.net/en/latest/publishing/iis.html 1.安装HTTP Platform Handler ,这个是必需的,不然无法通过IIS访问AS ...

  2. 请描述一下 cookies,sessionStorage 和 localStorage 的区别?

    http://handyxuefeng.blog.163.com/blog/static/454521722013111714040259/ http://book.51cto.com/art/201 ...

  3. jfreechart环形图完美实现

    邮件发送由于不支持js,项目只能在后台生成环形图,用jfreechart完全可以实现,即:RingPlot. 这就拿jfreechart生成的最终效果,依赖jar包jfreechart,如果有任何细节 ...

  4. Strategy 模式

    可以看到 Strategy 模式和 Template 模式解决了类似的问题,也正如在 Template 模式中分析的,Strategy模式和 Template 模式实际是实现一个抽象接口的两种方式:继 ...

  5. 读书笔记之 - javascript 设计模式 - 装饰者模式

    本章讨论的是一种为对象增添特性的技术,它并不使用创建新子类这种手段. 装饰者模式可以透明地把对象包装在具有同样接口的另一对象之中,这样一来,你可以给一些方法添加一些行为,然后将方法调用传递给原始对象. ...

  6. LVS单机测试不负载

    LVS单机测试不负载 1.困惑 当我们在个人PC上搭建虚拟机(Vmware)做LVS负载实验的时候,我们不论是在个人浏览器或者其他虚拟机上访问LVS的VIP都会出现上时间刷新都出现同一个页面的情况. ...

  7. 问题:Maven: missing net.sf.json-lib

    问题:Maven: missing net.sf.json-lib 解决: pom.xml里加入json-lib依赖,注意要添加classifier一行,如下: 这里maven地址:http://re ...

  8. jquery ajax 后台响应成功,返回正确json但不执行success方法,执行error的问题

    昨天被这问题卡了好几个小时.查看http状态码:是200.而且返回了预想的json字符串.但执行的是error方法,不执行success方法.在网上查了一下,才发现是后台页面返回的json字符串格式不 ...

  9. VMWare10安装Ubuntu 13.10过程

    把这当成自己的第一篇文章吧,准备工作环境切换到linux,选择Ubuntu 13.10桌面版,Ubuntu官网下载 先安装VMWare10,这个没什么可说的,安装好后启动,点击"新建虚拟机& ...

  10. __unset()魔术方法 删除类内私有属性

    __unset()魔术方法 删除私有属性 unset()对共有属性进行删除 可通过__unset()魔术方法对私有属性进行操作 当在类外部执行unset()函数时,自动执行类内__unset()魔术方 ...