MVC中分页的实现_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > MVC中分页的实现

MVC中分页的实现

 2014/7/28 21:22:36  格斗人-HelpQY  程序员俱乐部  我要评论(0)
  • 摘要:我在格斗人网(www.helpqy.com)中使用了下面的分页技术。分页可以采用troygoode提供的开源包,其开源网站主页为:https://github.com/TroyGoode/PagedList。具体使用方法如下所示:1.通过NuGet下载PagedList.Mvc包,这个包会自动下载另外一个包PagedList,如下所示:2.在controller中引入以上两个包,如下所示:3.在controller中的ActionResult函数中按照如下最小结构进行调用
  • 标签:MVC 实现

我在格斗人网 (www.helpqy.com) 中使用了下面的分页技术。

分页可以采用troygoode提供的开源包,其开源网站主页为:https://github.com/TroyGoode/PagedList。具体使用方法如下所示:

1. 通过NuGet下载PagedList.Mvc包,这个包会自动下载另外一个包PagedList,如下所示:

 

Tencent\Users\83138351\QQ\WinTemp\RichOle\JUAOTI[2@$LIWK76%CRI}_K.jpg" alt="" />

2. 在controller中引入以上两个包,如下所示:

 

3. 在controller中的ActionResult函数中按照如下最小结构进行调用:

1 ActionResult ExampleFunction (int ? page)
2 {
3     int pageSize = 10;
4     int pageNumber = page ?? 1;
5     
6     return View(ExampleList.ToPagedList(pageNumber, pageSize));
7 }

    其中,page是可以为空的整型,表示View下一次访问时应该处于第几页,由View通过get方式传过来,第一次访问页面时,page为空,则pageNumber被赋值为1,表示为第一页内容。pageSize是每一页显示的条目数,pageNumber表示希望显示的是第几页。ToPagedList方法实际上是将ExampleList的所有条目按照pageSize的大小重新组合成页,然后通过pageNumber来指示显示那一页,并仅将这一页的内容传递到View中。

 

4. 在ExampleFunction对应的View中,也需要加入对包的引用:

同时需要在View顶部加入model引用,将ToPagedList的结果转换成IPagedList集合:

@model IPagedList<ExampleObject>

 

5. 在ExampleFunction对应的View中,按照如下的最小结构在页面底部调用:

Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
@Html.PagedListPager(Model, page => Url.Action("ExampleFunction", new { page = page}))

    其中,第一行代码显示目前处于第几页,总共多少页。第二行代码自动根据总条目数和每一页的条目数进行计算,从而显示页码。同时,第二行代码自动生成每一个页码对本View的get访问链接,当用户点击某一页码时,实际上是在继续访问本View,只不过将page参数,也就是被点击的页码传递给了Controller中的ExampleFunction函数,指示希望Controller把某一页的内容传递给View,如此再回过头去看Controller中Example函数的分析就比较清楚了。Model就是在View顶部所转化的IPagedList。

 

发表评论
用户名: 匿名