1. public class MyPagecontroll
  2. {
  3. public int TotalCount { get; set; }//数据的总条数
  4. public int PageSize { get; set; }//每一页的显示条数
  5. public int CurrentPageIndex { get; set; }//当前是页码数,也就是说明当前是第几页
  6. public int MaxPageCount { get; set; }//用于显示当前页码条的数量
  7. public string UrlFormat { get; set; }//绘制当前的Url
  8. public int PageCount { get; set; }
  9. public MyPagecontroll()
  10. {
  11. PageSize = Convert.ToInt32(ConfigurationManager.ConnectionStrings["PageSize"].ConnectionString);
  12. MaxPageCount = Convert.ToInt32(ConfigurationManager.ConnectionStrings["MaxPageCount"].ConnectionString);
  13. PageCount = (int)Math.Ceiling((double)TotalCount / PageSize);
  14.  
  15. }
  16. public void SetCurrentPageIndex(string pn)
  17. {
  18. int tempPageIndex;
  19. if (int.TryParse(pn, out tempPageIndex))
  20. {
  21. CurrentPageIndex = tempPageIndex;
  22. }
  23. else
  24. {
  25. CurrentPageIndex = ;
  26. }
  27. }
  28. public string GetPageLink(int page, string txt)
  29. {
  30. StringBuilder sb = new StringBuilder();
  31. string url = UrlFormat.Replace("{n}", page.ToString());
  32. sb.Append("<a href='").Append(url).Append(">").Append(txt).Append("</>");
  33. return sb.ToString();
  34. }
  35. public string Render()
  36. {
  37. StringBuilder sb = new StringBuilder();
  38. int visibleStart = CurrentPageIndex - MaxPageCount / ;
  39. if (visibleStart < )
  40. {
  41. visibleStart = ;
  42. }
  43. int viszbleEnd = visibleStart + MaxPageCount;
  44. if (viszbleEnd > PageCount)
  45. {
  46. viszbleEnd = PageCount;
  47. }
  48. if (CurrentPageIndex > )
  49. {
  50. sb.Append(GetPageLink(, "首页"));
  51. sb.Append(GetPageLink(CurrentPageIndex - , "上一页"));
  52. }
  53. else
  54. {
  55. sb.Append("<span>首页</span>");
  56. sb.Append("<span>上一页</span>");
  57. }
  58. for (int i = visibleStart; i <= viszbleEnd; i++)
  59. {
  60. if (i == CurrentPageIndex)
  61. {
  62. sb.Append("<span>").Append(i).Append("</span>");
  63. }
  64. else
  65. {
  66. sb.Append(GetPageLink(i, i.ToString()));
  67. }
  68. }
  69. if (CurrentPageIndex < PageCount)
  70. {
  71. sb.Append(GetPageLink(CurrentPageIndex + , "下一页"));
  72. sb.Append(GetPageLink(PageCount + , "末页"));
  73. }
  74. else
  75. {
  76. sb.Append("<span>下一页</span>");
  77. sb.Append("<span>末页</span>");
  78. }
  79. return sb.ToString();
  80. }
  81. }

我学习的自定义ASP.NET分页控件的更多相关文章

  1. asp.net分页控件

    一.说明 AspNetPager.dll这个分页控件主要用于asp.net webform网站,现将整理代码如下 二.代码 1.首先在测试页面Default.aspx页面添加引用 <%@ Reg ...

  2. Spring Boot 项目学习 (二) MySql + MyBatis 注解 + 分页控件 配置

    0 引言 本文主要在Spring Boot 基础项目的基础上,添加 Mysql .MyBatis(注解方式)与 分页控件 的配置,用于协助完成数据库操作. 1 创建数据表 这个过程就暂时省略了. 2 ...

  3. 【asp.net爬虫】asp.NET分页控件抓取第n页数据 javascript:__doPostBack

    最近在模拟HTTP请求抓取数据,但是服务器是asp.net开发的 分页控件代码 <tr> <td align="left">共&nbsp210&am ...

  4. .net core 学习笔记(1)-分页控件的使用

    最近有个小项目,用.net core开发练练手,碰到的第一个问题就是分页控件的问题,自己写太费时间,上网查了下,发现有人已经封装好了的,就拿过来用了,分页控件github:https://github ...

  5. asp.net分页控件库

    AspNetPager分页控件 AspNetPager分页控件解决了分页中的很多问题,直接采用该控件进行分页处理,会将繁琐的分页工作变得简单化,下面是我如何使用AspNetPager控件进行分页处理的 ...

  6. 小白写的一个ASP.NET分页控件,仅供娱乐

    无聊,第一次写博客,自己动手写了一个分页控件.由于我是新手,有很多地方写得不够好,希望各位大牛多多指正.哈哈哈 /// <summary> /// 分页控件 /// </summar ...

  7. ASP.NET 分页控件

    using System; using System.ComponentModel; using System.Web; using System.Web.UI; using System.Web.U ...

  8. 对自写的Asp.Net分页控件的应用方式(异步无刷新分页)

    前台代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" co ...

  9. asp.net webform 自定义分页控件

    做web开发一直用到分页控件,自己也动手实现了个,使用用户自定义控件. 翻页后数据加载使用委托,将具体实现放在在使用分页控件的页面进行注册. 有图有真相,给个直观的认识: 自定义分页控件前台代码: & ...

随机推荐

  1. mysql自带压测工具--mysqlslap

    mysqlslap  压测 mysql 5.7.20 目前版本,打印不出内存.cpu使用信息 mysqlslap -h192.168.9.60 -P4406 -uroot -p --create-sc ...

  2. 怒转一波,此人整理的Flink特别好

    Apache Flink:特性.概念.组件栈.架构及原理分析 Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时(Flink Runtim ...

  3. HMTL5滑动块研究

    滑动块图片 html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> &l ...

  4. HDU 2152 Fruit( DP )

    Fruit Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  5. ubuntu16.04安装docker11.09

    1.    安装Docker 操作系统 ubuntu16.04 1.1.   配置源文件 $sudo apt-get update #允许 apt 命令 HTTPS 访问 Docker 源 $sudo ...

  6. 如何减少代码中的if-else嵌套

    实际项目中,往往有大量的if-else语句进行各种逻辑校验,参数校验等等,大量的if-else,语句使代码变得臃肿且不好维护,本篇文章结合我自己的经验,就减少if-else语句给出以下几种方案,分别适 ...

  7. data-*存数据,拿出ul li中的数据

    <ul class="questions"> <li> <div class="question">1.您的年龄是?< ...

  8. java nio socket使用示例

    这个示例,实现一个简单的C/S,客户端向服务器端发送消息,服务器将收到的消息打印到控制台,并将该消息返回给客户端,客户端再打印到控制台.现实的应用中需要定义发送数据使用的协议,以帮助服务器解析消息.本 ...

  9. MongoDB--副本集基本信息

    副本集的概念 副本集是一组服务器,其中有一个是主服务器(primary),用于处理客户端请求:还有多个备份服务器(secondary),用于保存主服务器的数据副本.如果主服务器崩溃了,备份服务器会自动 ...

  10. mysql的几种锁

    由于对于mysql的锁机制了解的并不深入,所以翻阅了资料,整理一下自己所理解的锁.以mysql数据库的InnoDB引擎为例,因为InnoDB支持事务.行锁.表锁:且现在大部分公司使用的都是InnoDB ...