ASP.NET MVC分页功能实现:PagedList

更多的权利,就意味着更多的责任。在MVC中,我们几乎不再使用Drag and Drop来的各种控件,因此我们就不再受这些控件所提供的功能的限制,但是当然也就失去了这些控件所带来的好处和便利。比如GridView以及它所附带的分页功能。本文将利用LINQ的defered execution的特性来实现一个通用的分页和导航的PagedList,从而实现ASP.NET MVC分页功能。

ASP.NET MVC分页·CONTENT

为了使PagedList能有分页和导航的功能,因此我们需要知道总共有多少行数据,需要有多少个也需要显示。故可以定义这样一个接口

 

为了使这个通用的PagedList能真正的“通用”,就需要时使用泛型。.Net已经提供了很好了一个很好的基类,我们继承它就好了,同时实现IPagedList接口

 

 

对PagedList的构造函数中的最后一句代码稍作解释: index为从0开始计算的页数,可以为Null, pageSize 为每页显示的记录数。最后对ToList()的调用会使得这个IQueryable被执行,返回的List被加到这个PagedList中。

ASP.NET MVC分页·Application

PagedList基本完成了,该实际应用了。在页面文件中,根据PagedList的数据,对CSS做一些设置,就可以实现分页和导航的功能。

 

OK,We have done here. ASP.NET MVC分页功能实现。

这里没想到好方法把Controller的信息加进去,只好暂时hard code了。

【编辑推荐】

  1. 为ASP.NET MVC应用添加自定义路由
  2. 学习ASP.NET MVC路由的使用方法
  3. 浅析ASP.NET中的URL Rewrite
  4. 浅谈ASP.NET MVC框架
  5. 介绍ASP.NET MVC中的MvcAjaxPanel
THE END