1. /// <summary>
  2. /// 带偏移量自定义分页方法
  3. /// </summary>
  4. /// <param name="PageSize">每页条数</param>
  5. /// <param name="CurrentPage">当前页</param>
  6. /// <param name="TotalCountRecord">总条数</param>
  7. /// <param name="where">条件</param>
  8. /// <returns></returns>
  9. public string BuildPagers(int PageSize, int CurrentPage, int TotalCountRecord,string where)
  10. {
  11. //偏移量
  12. int Step = 5;
  13. int LeftNum = 0;//左值
  14. int RightNum = 0;
  15. string PageUrl = Request.FilePath;
  16. int PageCount = (int)Math.Ceiling((double)(TotalCountRecord) / PageSize); //总页数
  17.  
  18. //当前页-步长 <1 则作值=1
  19. if (CurrentPage - Step < 1)
  20. {
  21. LeftNum = 1;
  22. }
  23. else
  24. {
  25. LeftNum = CurrentPage - Step;
  26. }
  27.  
  28. if (CurrentPage + Step > PageCount)
  29. {
  30. RightNum = PageCount;
  31. }
  32. else
  33. {
  34. RightNum = CurrentPage + Step;
  35. }
  36. StringBuilder OutPut = new StringBuilder();
  37. string strUrl = "";
  38. for (int i = LeftNum; i <= RightNum; i++)
  39. {
  40. if (i == CurrentPage)
  41. {
  42. OutPut.Append("<font style='margin-left:3px;' color=red>");
  43. OutPut.Append(i.ToString());
  44. OutPut.Append("</font>");
  45. }
  46. else
  47. {
  48. OutPut.Append("<a style='margin-left:3px;' href='");
  49. OutPut.Append(PageUrl);
  50. OutPut.Append("?" + where + "&page=");
  51. OutPut.Append(i.ToString());
  52. // OutPut.Append(strUrl);
  53. OutPut.Append("'>");
  54. OutPut.Append(i.ToString() + " ");
  55. OutPut.Append("</a>");
  56. }
  57. }
  58.  
  59. if (CurrentPage > 1)
  60. {
  61. OutPut.Insert(0, string.Format("<a href='{0}?" + where + "&page={1}{2}'>上一页</a>", PageUrl, (CurrentPage - 1), strUrl));
  62. }
  63.  
  64. if (CurrentPage < PageCount)
  65. {
  66. OutPut.Append("<a href='");
  67. OutPut.Append(PageUrl);
  68. OutPut.Append("?" + where + "&page=");
  69. OutPut.Append(+CurrentPage + 1);
  70. OutPut.Append(strUrl);
  71. OutPut.Append("'>下一页</a></li>");
  72. OutPut.Append("总记录数:<font color='red'>" + TotalCountRecord + "</font> 总页数:<font color='red'>" + PageCount + "</font>");
  73. }
  74. return OutPut.ToString();
  75.  
  76. }
  1. private void Bind(int Page,string  where)
  2.     {
  3.         str = BuildPagers(16, Page, GoodsFunBLL.GetGoodsListCount(where), where);
  4.         this.DataGoodsList.DataSource = GoodsFunBLL.GetGoodsByTypeIdList(16, Page,where);
  5.         this.DataGoodsList.DataBind();
  6.     }

C# 带偏移量自定义分页方法的更多相关文章

  1. laravel 自定义分页 offset 和 limit 的使用

    laravel 本身有一个自带的快速分页方法 paginate,只需要传入每页显示多少条数据就可以 了,但是如果想使用自定义从哪里开始呢,这时候就可以使用offset 和 limit 的组合,offs ...

  2. Laravel 中通过自定义分页器分页方法实现伪静态分页链接以利于 SEO

    我们知道,Laravel 自带的分页器方法包含 simplePaginate 和 paginate 方法,一个返回不带页码的分页链接,另一个返回带页码的分页链接,但是这两种分页链接页码都是以带问号的动 ...

  3. 在 Laravel 中通过自定义分页器分页方法实现伪静态分页链接以利于 SEO

    我们知道,Laravel 自带的分页器方法包含 simplePaginate 和 paginate 方法,一个返回不带页码的分页链接,另一个返回带页码的分页链接,但是这两种分页链接页码都是以带问号的动 ...

  4. django上课笔记2-视图CBV-ORM补充-Django的自带分页-Django的自定义分页

    一.视图CBV 1.urls url(r'^login.html$', views.Login.as_view()), 2.views from django.views import View cl ...

  5. MyBatis-编写自定义分页插件

    一.基础知识 本文测试和源码分析参考版本: Mybatis-version:3.5.5 本文相关测试源代码:https://github.com/wuya11/mybatis_demo 1.1 参考方 ...

  6. MVC下分页的自定义分页一种实现

    1.引言 在MVC开发中我们经常会对数据进行分页的展示.通过分页我们可以从服务端获取指定的数据来进行展示.这样既节约了数据库查询的时间也节约了网络传输的数据量.在MVC开发中使用的比较多的应该是MVC ...

  7. thinkphp自定义分页效果

    TP自带了一个分页函数,挺方便使用的. 下面是我的使用方法: /*****************分页显示start*************************/ $arr_page=$this ...

  8. MVC3 带查询的分页Helper

    接上篇mvc3 分页Helper. 带查询的分页Helper是在上一篇分页的基础上来的.下面看代码: 首先,在System.Web.Mvc命名空间下的自定义类HtmlPage下面添加一个用于处理“查询 ...

  9. 富文本编辑器UEditor自定义工具栏(二、插入图片、音频、视频个性化功能按钮和弹层及自定义分页符)

    导读:本篇将简单探讨插入图片.音频.视频的功能按钮实现方式 传送门:富文本编辑器UEditor自定义工具栏(一.基础配置与字体.背景色.行间距.超链接实现) 一.效果图 1.UEditor自定义工具栏 ...

随机推荐

  1. javascript 回到顶部 动画效果

    上代码: <!DOCTYPE html> <html> <head> <meta content="测试demo" name=" ...

  2. Canvas的drawImage方法使用

    canvas是HTML5中的一个新元素,这个元素可以通过JavaScript用来绘制图形.例如可以用它来画图.合成图象.做一些动画等. 通常呢,我们在canvas上画图的方法是使用Image对象.基本 ...

  3. 浏览器中显示PPT的展示效果

    发现了一个PPT的WEb展示的方法,在浏览器中载入PDF文件之后,可以实现基于WEB的页面展示,支持全屏与自动播放. https://sharedoc.onk.ninja/ 这不失为一种可行的方式,且 ...

  4. UITableView 之 点击cell 实现两个自定义cell之间的切换

  5. centos 手动增加swap分区

    SWAP是Linux中的虚拟内存,用于扩充物理内存不足而用来存储临时数据存在的.它类似于Windows中的虚拟内存.在Windows中,只可以使用文件来当作虚拟内存.而linux可以文件或者分区来当作 ...

  6. centos 6.8 下安装redmine(缺陷跟踪系统)

    一.实验环境 centos6.8 64位 所需安装包: ruby-2.3.4.tar.gz.rubygems-1.8.25.tgz.redmine-2.3.2.tar.gz 二.安装步骤 1.安装必要 ...

  7. 谷歌内核浏览器 iframe内容的 tab切换 滚动条消失

    问题: 新版本的-webkit- 内核浏览器 在tab切换时,iframe 内容区 丢失滚动条 如下图 (虽然滚动条位置还在,可以垂直滚动,但滚动条不见了) 解决思路: 让iframe重新计算宽高,重 ...

  8. Virtualbox以及VWare在Win10下的不兼容

    异常处理汇总-开发工具  http://www.cnblogs.com/dunitian/p/4522988.html Hyper原因导致的,关闭即可 禁用 hyper-vbcdedit /set h ...

  9. 解析JavaScript函数的多种写法

    本文主要分析了JavaScript中函数的几种写法,具体如下: 1.函数的声明和表达式(旧方法,也是最常见的方法) 2.通过Function构造器 这也是一种从一开始就存在方法,但是因为书写麻烦等原因 ...

  10. MySQL数据库基础(四)(子查询与链接)

    1.子查询简介 其中,所谓的"外层查询"并不是指"查找",指的是所有SQL语句的统称:结构化查询语言(Structured Query Language),简称 ...