ASP.NET MVC实践 对查询后分页处理的解决方案

发表于:2009-11-20 10:44

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

分享:

  四、Pager类改造

  经过分析我们发现Pager是通过ToString()方法将分页字符串输出到前台的,所以我们这里需要先改造Pager的ToString()方法。我们常常希望分页是这样显示的:

  上一页  1  2 3 4 5 6 下一页,所以先将ToString()方法改造如下:

  ToString方法

  1 public override string ToString()
  2         {
  3             if (_pagination.TotalItems == 0)
  4             {
  5                 return null;
  6             }
  7
  8             var builder = new StringBuilder();
  9
  10             builder.Append("<div class=" + _pageStyle + ">");
  11
  12             if (_pagination.PageNumber > 1)
  13                 builder.Append(CreatePageLink(_pagination.PageNumber - 1, _pagePrev));
  14             else
  15                 builder.Append(CreatePageText(_pagePrev));
  16             for (int i = 0; i < _pagination.TotalPages; i++)
  17             {
  18                 var current = i + 1;
  19                 if (current == _pagination.PageNumber)
  20                 {
  21                     builder.Append(CreatePageText(current.ToString()));
  22                 }
  23                 else
  24                 {
  25                     builder.Append(CreatePageLink(current, current.ToString()));
  26                 }
  27                 builder.Append("  ");
  28             }
  29
  30             if (_pagination.PageNumber < _pagination.TotalPages)
  31                 builder.Append(CreatePageLink(_pagination.PageNumber + 1, _pageNext));
  32             else
  33                 builder.Append(CreatePageText(_pageNext));
  34             builder.Append(@"</div>");
  35
  36             return builder.ToString();
  37         }

  这里需要交代一下将要实现查询分页的原理,这个方案中我们将会把查询的信息附加到分页的Url上,首先我们会把需要附加的条件添加到一个Dictionary<string, string>类中,然后传给Pager类进行处理。

43/4<1234>
精选软件测试好文,快来阅读吧~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号