高校平台中,后台使用EF框架,前端使用MVC结合Easyui,前端和后台的链接采用WCF传递数据,现在来说说是如何实现分页的。
页面:mvc+Easyui
采用部分视图的方式调用拼接表格的部分视图,url放入页面加载时调用的方法(controller+方法名),例如我的controller为Template,方法名为QueryTemplateData。
<div id="ContentAreas">
@*先调用 对应的业务Controller中的表头数据*@
@{Html.RenderAction("ShowTemplateProperties", "Template");}
@*加载 数据表格 datagrid 加参数——查询业务数据的url *@
@{Html.RenderAction("DataGrid", "ControlsPartial", new { url = "/Template/QueryTemplateData"});}
</div>
效果如下:
Controller下的方法QueryTemplateData如下:
pageSize指一页显示多少数据,pageIndex指第几页,out total,传地址,返回当前表格中所有数据条目数。
#region 查询模板主表数据——页面首次加载 朱丹 2014年12月21日16:26:48
/// <summary>
/// 查询模板主表数据——页面首次加载
/// </summary>
/// <returns>string</returns>
public ActionResult QueryTemplateData()
{
//pageSize页大小
int pageSize = int.Parse(Request.QueryString["rows"].ToString().Trim());
//pageIndex第几页
int pageIndex = int.Parse(Request.QueryString["page"].ToString().Trim());
int total = 0;
List<ExamTemplateMainEntity> listData = new List<ExamTemplateMainEntity>();
ExamTemplateMainEntity enTemplate = new ExamTemplateMainEntity();
listData = userService.QueryTemplateMain(pageSize, pageIndex, out total);
var data = new
{
total,
rows = listData
};
return Json(data, JsonRequestBehavior.AllowGet);
}
#endregion
值得注意的要为
var data = new
{
total,
rows = listData
};
return Json(data, JsonRequestBehavior.AllowGet);
此段代码是调用vs中的Json方法,将数据转换成如何Easyui表格分页的Json串,Easyui分页的Json串为:{"total":xx,"rows":[{...},{...}]} total为总数 rows为数据数组。
WCF和后台EF框架中的逻辑就不用我说了,只是将controller中的pageSize、pageIndex、out Total参数传后后台,获取数据库中的数据返回到Controller就可以了,这样就实现了分页。效果如下:
总结:
其实Easyui和MVC不难,再难,也要迎难而上,有困难了才是自己进步的时候!