更多的权利,就意味着更多的责任。在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了。
【编辑推荐】