分页PagerHelper辅助类

  1. using System;
    using System.Web;
  1. public class PagerHelper
  2. {
  3. #region 获取分页的Html代码
  4. /// <summary>
  5. /// 获取分页的Html代码
  6. /// 当前页码方法内部根据Request["page"]获取
  7. /// </summary>
  8. /// <param name="pageSize">每一页数量</param>
  9. /// <param name="totalCount">总数量</param>
  10. /// <param name="url">伪静态地址如/news/list-1-{0}.html</param>
  11. /// <param name="maxPageNum">最多显示的页码个数(100页 每次只显示8个其他隐藏)</param>
  12. /// <returns></returns>
  13. public static string GetPageHtml(int pageSize, int totalCount, string url, int maxPageNum = 8)
  14. {
  15. HttpRequest Request = HttpContext.Current.Request;
  16. int curPageIndex = 1;
  17. if (!string.IsNullOrWhiteSpace(Request["page"]))
  18. {
  19. curPageIndex = Convert.ToInt32(Request["page"] ?? "1");
  20. curPageIndex = curPageIndex <= 0 ? 1 : curPageIndex;
  21. }
  22.  
  23. System.Text.StringBuilder pageHtml = new System.Text.StringBuilder();
  24. //if (pageIndex > 1)
  25. //{
  26. pageHtml.Append(curPageIndex == 1 ? "<a href=\"javascript:void(0);\">首页</a>" : "<a href=\"" + string.Format(url, 1) + "\">首页</a>");
  27. pageHtml.Append(curPageIndex > 1 ? "<a href=\"" + string.Format(url, curPageIndex - 1) + "\">上一页</a>" : "<a href=\"javascript:void(0);\">上一页</a>");
  28. //}
  29. int pageCount = GetPageCount(pageSize, totalCount);//总页码
  30. //获取显示区域第一个开始位置 如 1 9 17
  31. int firstNum = curPageIndex % maxPageNum == 0 ? curPageIndex - (maxPageNum - 1) : curPageIndex - curPageIndex % maxPageNum + 1;
  32. if (firstNum > maxPageNum)
  33. {
  34. pageHtml.Append("<a href=\"" + string.Format(url, firstNum - 1) + "\">...</a>");
  35. }
  36.  
  37. for (int i = firstNum; i < firstNum + maxPageNum; i++)
  38. {
  39. if (i > pageCount) break;
  40. string css = string.Empty;
  41. if (i == curPageIndex)
  42. {
  43. css = "class=\"currentpage\"";
  44. }
  45. pageHtml.Append("<a " + css + " href=\"" + string.Format(url, i) + "\">" + i + "</a>");
  46.  
  47. }
  48. if (pageCount >= firstNum + maxPageNum)
  49. {
  50. pageHtml.Append("<a href=\"" + string.Format(url, firstNum + maxPageNum) + "\">...</a>");
  51. }
  52. //if (pageCount > curPageIndex)
  53. //{
  54. pageHtml.Append(curPageIndex < pageCount ? "<a href=\"" + string.Format(url, curPageIndex + 1) + "\">下一页</a>" : "<a href=\"javascript:void(0);\">下一页</a>");
  55. pageHtml.Append("<a href=\"" + string.Format(url, pageCount) + "\">尾页</a>");
  56. //}
  57. pageHtml.Append(string.Format("<a href=\"javascript:void(0);\">共{0}页,{1}条</a>", pageCount, totalCount));
  58. return pageHtml.ToString();
  59. }
  60.  
  61. #endregion
  62.  
  63. #region 获取页码总数
  64. /// <summary>
  65. /// 获取页码总数
  66. /// </summary>
  67. /// <param name="pageSize">每一页 数量</param>
  68. /// <param name="totalCount">总数量</param>
  69. /// <returns></returns>
  70. private static int GetPageCount(int pageSize, int totalCount)
  71. {
  72. int pageNumbers = 0;
  73. if (totalCount % pageSize != 0)
  74. {
  75. pageNumbers = totalCount / pageSize + 1;
  76. }
  77. else
  78. {
  79. pageNumbers = totalCount / pageSize;
  80. }
  81. pageNumbers = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(totalCount) / Convert.ToDouble(pageSize)));
  82. return pageNumbers;
  83. }
  84. #endregion
  85.  
  86. }

  前台使用

  1. <%@ Page Language="C#" AutoEventWireup="true" %>
  2.  
  3. <!DOCTYPE html>
  4.  
  5. <html xmlns="http://www.w3.org/1999/xhtml">
  6. <head runat="server">
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8. <title></title>
  9. <style>
  10. html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, i { margin: 0; padding: 0; border: 0; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline; }
  11. body { background: #fff; font: 12px/1.5 Tahoma; color: #000; }
  12. a { text-decoration: none; cursor: pointer; }
  13. /*分页*/
  14. .page { clear: both; text-align: center; margin-top: 10px; margin-bottom: 20px; }
  15. .page a { border: 1px solid #dbdbdb; background: #fff; padding: 5px 10px; margin: 1px; display: inline-block; color: #000; }
  16. .page a:hover { text-decoration: none; background-color: #2196F3; color: #fff; }
  17. .page span a { border: 1px solid #1f5b13; background: #fff; padding: 2px 7px; margin: 1px; display: inline-block; color: #104c00; }
  18. .page span a:hover { text-decoration: none; background-color: #a3c79c; }
  19. .page .currentpage { background-color: #ff8800; color: #fff; }
  20. </style>
  21. </head>
  22. <body>
  23. <form id="form1" runat="server">
  24. <div class="page">
  25. <asp:Literal runat="server" ID="ltHtml"></asp:Literal>
  26. </div>
  27. </form>
  28. <script runat="server">
  29. protected void Page_Load(object sender, EventArgs e)
  30. {
  31. ltHtml.Text = PagerHelper.GetPageHtml(3, 33, "/tpager_demo.aspx?page={0}");
  32. }
  33. </script>
  34. </body>
  35. </html>

预览图  

c# asp.net 实现分页(pager)功能的更多相关文章

  1. asp.net mvc 的几种分页Pager

    第一种 /// <summary> /// 分页Pager显示 /// </summary> /// <param name="html">&l ...

  2. ASP.NET MVC分页组件MvcPager 2.0版发布暨网站全新改版

    MvcPager分页控件是在ASP.NET MVC Web应用程序中实现分页功能的一系列扩展方法,该分页控件的最初的实现方法借鉴了网上流行的部分源代码, 尤其是ScottGu的PagedList< ...

  3. asp.net mvc 自定义pager封装与优化

    asp.net mvc 自定义pager封装与优化 Intro 之前做了一个通用的分页组件,但是有些不足,从翻页事件和分页样式都融合在后台代码中,到翻页事件可以自定义,再到翻页和样式都和代码分离, 自 ...

  4. ASP.NET MVC分页实现之改进版-增加同一个视图可设置多个分页

    我之前就已经实现了ASP.NET MVC分页(查看该博文),但它有局限性,必须确保在同一个视图中只能有一处分页,若需要在同一个视图中设置多个分页,却无能为力,为此,我重新对原先的代码进行了优化,增加了 ...

  5. [Asp.net]AspNetPager分页组件

    引言 在基于Asp.net的内网系统中,分页功能是最常用的,用的最多的组件就是AspNetPager. AspNetPager 官网:http://www.webdiyer.com/aspnetpag ...

  6. 基于Bootstrap的Asp.net Mvc 分页

    基于Bootstrap的Asp.net Mvc 分页的实现 最近写了一个mvc 的 分页,样式是基于 bootstrap 的 ,提供查询条件,不过可以自己写样式根据个人的喜好,以此分享一下.首先新建一 ...

  7. SQLSERVER2012的分页新功能

    SQLSERVER2012的分页新功能 简介 SQL Server 2012中在Order By子句之后新增了OFFSET和FETCH子句来限制输出的行数从而达到了分页效果.相比较SQL Server ...

  8. 【转载】ASP.NET实现文件下载的功能

    文件下载是很多网站中含有的常用功能,在ASP.NET中可以使用FileStream类.HttpRequest对象.HttpResponse对象相互结合,实现输出硬盘文件的功能.该方法支持大文件.续传. ...

  9. 利用 ASP.NET 的内置功能抵御 Web 攻击 (1)

    摘要: Dino 总结了最常见的 Web 攻击类型,并介绍了 Web 开发人员可以如何使用 ASP.NET 的内置功能来改进安全性. 一.ASP.NET 开发人员应当始终坚持的做法 如果您正在阅读本文 ...

随机推荐

  1. Python性能监控

    profiler是一个程序,用来描述运行时的程序性能,并且从不同方面提供统计数据加以表述.Python中含有3个模块提供这样的功能,分别是cProfile, profile和pstats.这些分析器提 ...

  2. Linux信号使用及自定义信号

    linux自定义信号:https://www.cnblogs.com/bigben0123/p/3186661.html linux信号.值及解释:https://blog.csdn.net/luot ...

  3. The First Python man in Github

    Python date VS(可视化了一下前几名) 查了下Github上星星最多的Python man 或许这就是目标吧 刚刚改了github.

  4. qt 添加程序插件目录

    QApplication::addLibraryPath(QApplication::applicationDirPath()); QApplication::addLibraryPath(QAppl ...

  5. Win+数字快速启动/切换指定程序

    Windows键+数字,可以快速启动任务栏上的程序 按下按下Win+4桌面将切换到排序第4的程序:页也就是谷歌浏览器. 今天刚发现这个小功能.   文章来源:外星人来地球 欢迎关注,有问题一起学习欢迎 ...

  6. C++ 中virtual 用法

    一.virtual 修饰基类中的函数,派生类重写该函数: #include using namespace std; class A{ public: virtual void display(){ ...

  7. raid卷性能测试

    #RAID卷 独立磁盘冗余阵列RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术.组成磁盘阵列的不同方式成为R ...

  8. vue + elementui form resetFields方法 无法重置表单

    this.$refs['form'].resetFields(); 方法无法重置.1 el-form 组件 没有添加 ref 属性 <el-form ref="form" : ...

  9. LoadRunne遇到的一些问题FAQ(持续更新...)

    1.LR11破解完成,添加License失败,报错License security violation Loadrunner11破解成功后,用deletelicense.exe工具把License全删 ...

  10. hadoop目录命令

    下面是经常使用到的,以此记录备忘 1.查看hadoop目录 命令: hadoop fs -ls / 2.创建目录 命令:hadoop fs -mkdir /目录名 3.将文件上传hadoop中(也就是 ...