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; }
}
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; }
}
相关文章推荐
- AspNetPager分页控件使用方法(不使用DBAccess.cs文件)(二)
- DataList分页方法及分页控件的使用
- ASPNETPAGER分页控件的使用方法[图文]
- AspNetPager控件分页使用方法
- 【视频】自然框架之分页控件的使用方法(一) PostBack方式的一般分页方式
- AspNetPager控件分页使用方法
- AspNetPager分页控件--使用方法 1
- ASPNETPAGER分页控件的使用方法[图文]
- 简单实用的分页控件 AspNetPager.dll 的使用方法
- MVC中使用entity framework(EF)出现“必须添加对程序集“System.Data.Entity”解决方法
- AspNetPager分页控件使用方法
- 【视频】配置信息管理 的 使用方法(五):配置程序之列表、分页控件、按钮
- MVC中使用entity framework(EF)出现“必须添加对程序集“System.Data.Entity”解决方法
- dhl:asp.net mvc下用jQuery ajax方法实现无刷新分页(用户控件)& 整体页面无刷新(2010-11-13 add)
- AspNetPager分页控件--使用方法 2
- 在asp.net mvc中创建使用Linq to sql的分页控件
- 【视频】配置信息管理 的 使用方法(五):配置程序之列表、分页控件、按钮
- 【视频】配置信息管理 的 使用方法(五):配置程序之列表、分页控件、按钮
- 【视频】自然框架之分页控件的使用方法(二) 下载、DLL说明和web.config的设置
- 【视频】自然框架之分页控件的使用方法(一) PostBack方式的一般分页方式