老生常谈: Asp.net Mvc3 加载cshtml文件自定义分页+ 查询

上次写了篇:老生常谈:Asp.net Mvc 3 加载cshtml文件创建自定义分页

遇到的问题: 单纯的数据列表,分页ok,但是加上其它外界因素,常见的如  查询,排序,分页如何跟它们结合呢?

分页如何和查询,排序结合?

我的思路,查询、排序为主,分页为次。

           1.查询条件改变,页码重新加载,当前页面从1重新开始

           2. 查询后生成的页码保存查询对应的参数和值,从而模拟查询+分页的效果。

 

拓展分页控件,使其可以包含其它参数。

常见的传参方式: Url传值,Form传值

常见的数据格式: Text 和 json

 

更改原有设计:

DataType  参数类型 text/json

 

PageModel 页码类包含:

                               PageIndex 页码索引

                               PageText 页码显示文本

 

Pager 分页控件类

                               PagerTemp 分页控件加载cshtml或者ascx名称

                               PagerID 分页控件ID

                               PagerShow 是否显示分页

                               PageSize 每页显示的记录数目

                               CurPage  当前页的索引

                               PageNum 最少显示的页码数目[偏移量]

                               Totalpage 总页数

                               TotalSize 总记录数据

                               List<PageModel> 页码列表

                               ControllerName  控制器名称

                               ActionName   动作名称

                               DataType 数据格式

                               Dictionary<string,string> 参数列表

                               PageData 数据

PageHelper 分页控件生成类,拓展HtmlHelper用于创建分页控件

                              public static MvcHtmlString Pager(this HtmlHelper helper,
                                   string pagerId, //分页控件Id
                                   int curPage, //当前页码
                                   int totalSize, //总记录数
                                   string pagerTemp = "_PagerTemp", //分页控件模板
                                   int pageSize = 10, //每页显示10条
                                   int pageNum = 5, //显示的页码数目

                                   string datatype = "text", //默认是Url传值
                                   Dictionary<string, string> parameters = null //参数列表

                                   ){

                                           //创建分页控件方法

                                 }

 

_PageTemp  分页控件显示的模板

 

总结: 美中不足的一点是 查询或者过滤条件改变的时候,要清空 curPage 为 1

点击下载

posted @ 2011-09-29 14:17  birchlee  阅读(2633)  评论(5编辑  收藏  举报