1. namespace Common
  2. {
  3. public class PageLinkHelp
  4. {
  5. /// <summary>
  6. /// 生成分页超链接标签
  7. /// 使用了Bootstrap3的分页样式:首页«第380页第381页第382页第383页第384页»尾页
  8. /// </summary>
  9. /// <param name="pageIndex">当前页码(当前页索引)</param>
  10. /// <param name="pageCount">总页码数
  11. /// 总页数计算公式:
  12. /// 第1种.Math.Max((数据总条数 + 每页显示的数量 - 1) / 每页显示的数量, 1):
  13. /// var pageCount = Math.Max((count + pageSize - 1) / pageSize, 1);
  14. /// 第2种.(int)Math.Ceiling(数据总条数 * 1.00 / 每页显示的数量) :
  15. /// var pageCount = (int)Math.Ceiling(count * 1.00 / pageSize);
  16. /// </param>
  17. /// <returns>页码超链接</returns>
  18. public static string GetPageBar(int pageIndex, int pageCount)
  19. {
  20. if (pageCount <= )
  21. {
  22. return string.Empty;
  23. }
  24. int start = (pageIndex - );
  25. if (start < )
  26. {
  27. start = ;
  28. }
  29. int end = (start + );
  30. if (end > pageCount)
  31. {
  32. start += pageCount - end;
  33. end = pageCount;
  34. }
  35. var linkStr = new System.Text.StringBuilder();
  36. linkStr.Append("<ul class=\"pagination\">");
  37. if (pageIndex != )
  38. {
  39. linkStr.Append($"<li class=\"page-item\"><a class=\"page-link\" href='?pageIndex={1}' >首页</a></li>");
  40. linkStr.Append($"<li class=\"page-item\"><a class=\"page-link\" href='?pageIndex={pageIndex - 1}' >&laquo;</a></li>");
  41. }
  42. for (int i = start; i <= end; i++)
  43. {
  44. if (i == pageIndex)
  45. {
  46. //active
  47. //当前页
  48. linkStr.Append($"<li class=\"page-item active\"><a class=\"page-link\" href='?pageIndex={i}' >第{i}页</a></li>");
  49. }
  50. else
  51. {
  52. linkStr.Append($"<li class=\"page-item\"><a class=\"page-link\" href='?pageIndex={i}' >第{i}页</a></li>");
  53. }
  54. }
  55. if (pageIndex < pageCount)
  56. {
  57. linkStr.Append($"<li class=\"page-item\"><a class=\"page-link\" href='?pageIndex={pageIndex + 1}' >&raquo;</a></li>");
  58. linkStr.Append($"<li class=\"page-item\"><a class=\"page-link\" href='?pageIndex={pageCount}' >尾页</a></li>");
  59. }
  60. linkStr.Append("</ul>");
  61. return linkStr.ToString();
  62. }
  63. }
  64. }

记录一下,方便以后用。。。感觉计算这些乱七八糟的。。。

Asp.Net分页生成页码超链接方法的更多相关文章

  1. 在asp.net 中生成PDF的方法

    近期要用asp.net 2.0生成PDF,看了下书,查了下资料,发现可以有组件帮得上忙,可以下载itextsharp(https://sourceforge.net/projects/itextsha ...

  2. ASP.NETMVC4 分页组合查询解决方法

    本人新手刚在webform转到mvc   像linq  ef啥的,都是不会的不行不行的,不会就问群友,找资料 今天本屌遇到了一个分页组合查询的问题,解决了2个小时,把代码共享给大家 话不多话,直接上代 ...

  3. Layui 点击查询分页,页码不刷新解决方法

    Layui 点击查询分页,页码不刷新解决方法 function queryDataGrid() { layui.table.reload(tableName, { where: { //设定异步数据接 ...

  4. ASP.NET MVC 5 - 验证编辑方法(Edit method)和编辑视图(Edit view)

    在本节中,您将验证电影控制器生成的编辑方法(Edit action methods)和视图.但是首先将修改点代码,使得发布日期属性(ReleaseDate)看上去更好.打开Models \ Movie ...

  5. asp.net 分页-自己写分页控件

    去年就发表过asp.net 分页-利用后台直接生成html分页 ,那种方法只是单纯的实现了分页,基本不能使用,那时就想写个自己的分页控件,无奈能力有限.最近有点时间了,就自己做出了这个分页控件.我承认 ...

  6. (转)asp.net分页存储过程

    Asp.Net分页存储过程 SQL分页语句 一.比较万能的分页: sql代码: 1 2 3 select top 每页显示的记录数 * from topic where id not in  (sel ...

  7. [转]ASP.NET MVC 5 - 验证编辑方法(Edit method)和编辑视图(Edit view)

    在本节中,您将验证电影控制器生成的编辑方法(Edit action methods)和视图.但是首先将修改点代码,使得发布日期属性(ReleaseDate)看上去更好.打开Models \ Movie ...

  8. jqPaginator-master | kkpager-master 这两个分页插件的使用方法

    首先:百度"分页插件" 就会 找到这条链接: url=X8P3UpOM-6ceSfjdngX0oh9cNmVwSDy94CxKqWIazhyZ7If4S8wgpPqyEGUhk2t ...

  9. asp.net分页控件

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

随机推荐

  1. python版本安装

    目的 本文目的在于,对于不熟悉Python的人,教你: 1. 从哪里找到 可以下载到 各种版本的 包括Python 2.x和Python 3.x的 最新版本的 Python. 高手请无视之. 2.以及 ...

  2. [leetcode]173. Binary Search Tree Iterator 二叉搜索树迭代器

    Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the ro ...

  3. ubuntu14.04安装opengl

    OpenGL 是一套由SGI公司发展出来的绘图函式库,它是一组 C 语言的函式,用于 2D 与 3D 图形应用程式的开发上. 不可或缺的就是编译器与基本的函式库,如果系统没有安装的话,依照下面的方式安 ...

  4. macos安装postman

    安装命令 brew cask install postman brew 是从下载源码解压然后./configure && make install,同时会包含相关依存库.并自动配置 好 ...

  5. BZOJ4407 于神之怒加强版 - 莫比乌斯反演

    题解 非常裸的莫比乌斯反演. 但是反演完还需要快速计算一个积性函数(我直接用$nlogn$卷积被TLE了 推荐一个博客 我也不想再写一遍了 代码 #include<cstring> #in ...

  6. 20172325 2017-2018-2 《Java程序设计》第八周学习总结

    20172325 2017-2018-2 <Java程序设计>第八周学习总结 教材学习内容总结 1.关于绑定 绑定:在执行程序时产生一个请求事件,需要执行一段代码来来完成方法调用,即一个方 ...

  7. sublime3 多行编辑.摘抄

    Sublime text 3是一个非常强大的网站编辑工具. 这里小云深深的被它的快速编辑多行内容功能所吸引. 先说下,使用下面的功能要安装一个叫emmet的插件.没有的话,自行度娘吧. 下面就来看下具 ...

  8. Python 的stat 模块

    #!/usr/bin/env python#-*- encoding:UTF-8 -*- import os,time,stat fileStats = os.stat ( 'test.txt' )  ...

  9. Python GUI 编程

    Python GUI编程(Tkinter) Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的 ...

  10. 2018.10.15 loj#6010. 「网络流 24 题」数字梯形(费用流)

    传送门 费用流经典题. 按照题目要求建边. 为了方便我将所有格子拆点,三种情况下容量分别为111,infinfinf,infinfinf,费用都为validi,jval_{id_{i,j}}valid ...