您的位置:首页 > 产品设计 > UI/UE

mvc+EF+easyui 分页控件使用方法

2017-04-18 17:09 330 查看
前台页面    

window.onload = function ()

    {

        _griduser = $("#griduser");

        _griduser.datagrid('options').url = "/Home/Select";
        _griduser.datagrid('load', {});

     //分页控件的显示

        _griduser.datagrid('getPager').pagination(

      {

          afterPageText: '页,共 {pages} 页',

          beforePageText: '第',

          displayMsg: '共 {total} 个用户',

          showPageList: true

      });

    }

</script>

@{

    ViewBag.Title = "Index";

    Layout = "~/Views/Shared/_Layout.cshtml";

}

<div class="easyui-layout" fit="true">

    <div data-options="region:'center',border:false">

        <table  class="easyui-datagrid" id="griduser" data-options="idField: 'ID'"  fit="true" nowrap="false" pagination="true" rownumbers="true" singleselect="true">

            <thead>

                <tr>

                    <th field="Name" width="250" data-options="fixed: true">客户名称</th>

                    <th field="UpdateTime" width="150" data-options="fixed: true">最后修改时间</th>

                    <th field="UpdateUser" width="100" data-options="fixed: true">修改人</th>

                    <th field="CreateTime" width="150" data-options="fixed: true">首次创建时间</th>

                    <th field="CreateUser" width="100" data-options="fixed: true">创建人</th>

                </tr>

            </thead>

        </table>

    </div>
</div>

//前台请求路由

   public ActionResult select(UserRequest paraRequest)

        {

           var  query = from c in db.Users

                    where c.Status == 1

                    select new

                    {

                        c.Name,

                        c.UpdateTime

                    };

            return get(query, paraRequest,t => t.UpdateTime, true);

        }

//根据请求参数获取请求的页面数据  其中PagingRequest 为前台分页控件的请求数据,fn_order_by为按什么顺序

        protected ActionResult get<T>(IQueryable<T> query, PagingRequest request, Func<T, dynamic> fn_order_by, bool desc) where T : class

        {

            if (request.Rows == 0)

                request.Rows = int.MaxValue;

            if (request.Page == 0)

                request.Page = 1;

            if (desc)

            {

                return paging_result<T>(

                query.Count(),

                    query

                    .OrderByDescending(fn_order_by)

                    .Skip((request.Page - 1) * request.Rows)

                    .Take(request.Rows));

            }

            else

            {

                return paging_result<T>(

                    query.Count(),

                        query

                        .OrderBy(fn_order_by)

                        .Skip((request.Page - 1) * request.Rows)

                        .Take(request.Rows)

                );

            }

        }

protected ActionResult get<T>(IQueryable<T> query, PagingRequest request) where T : class
{
return paging_result<T>(query.Count(), query.Skip((request.Page - 1) * request.Rows).Take(request.Rows));
}

//返回给前台json类型的数据

        protected JsonResult paging_result<T>(int count, IEnumerable<T> model)

        {

            return Json(new

            {

                total = count,

                rows = model,

            });

        }

//用于接收分页控件传来的参数

        public class PagingRequest

        {

            public PagingRequest()

            {

                Page = 1;

                Rows = int.MaxValue;

            }

            public int Page { get; set; }

            public int Rows { get; set; }

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mvc C# easyui