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


  本文标签:ASP.NET MVC分页 PagedList

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

  ASP.NET MVC分页·CONTENT

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

  我们需要知道总共有多少行数据

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

    。.Net已经提供了很好了一个很好的基类,我们继承它就好了 

  .Net已经提供了很好了一个很好的基类,我们继承它就好了 

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

  ASP.NET MVC分页·Application

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

  对CSS做一些设置,就可以实现分页和导航的功能 

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

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