namespace Common
{
public class PageLinkHelp
{
/// <summary>
/// 生成分页超链接标签
/// 使用了Bootstrap3的分页样式:首页«第380页第381页第382页第383页第384页»尾页
/// </summary>
/// <param name="pageIndex">当前页码(当前页索引)</param>
/// <param name="pageCount">总页码数
/// 总页数计算公式:
/// 第1种.Math.Max((数据总条数 + 每页显示的数量 - 1) / 每页显示的数量, 1):
/// var pageCount = Math.Max((count + pageSize - 1) / pageSize, 1);
/// 第2种.(int)Math.Ceiling(数据总条数 * 1.00 / 每页显示的数量) :
/// var pageCount = (int)Math.Ceiling(count * 1.00 / pageSize);
/// </param>
/// <returns>页码超链接</returns>
public static string GetPageBar(int pageIndex, int pageCount)
{
if (pageCount <= )
{
return string.Empty;
}
int start = (pageIndex - );
if (start < )
{
start = ;
}
int end = (start + );
if (end > pageCount)
{
start += pageCount - end;
end = pageCount;
}
var linkStr = new System.Text.StringBuilder();
linkStr.Append("<ul class=\"pagination\">");
if (pageIndex != )
{
linkStr.Append($"<li class=\"page-item\"><a class=\"page-link\" href='?pageIndex={1}' >首页</a></li>");
linkStr.Append($"<li class=\"page-item\"><a class=\"page-link\" href='?pageIndex={pageIndex - 1}' >&laquo;</a></li>");
}
for (int i = start; i <= end; i++)
{
if (i == pageIndex)
{
//active
//当前页
linkStr.Append($"<li class=\"page-item active\"><a class=\"page-link\" href='?pageIndex={i}' >第{i}页</a></li>");
}
else
{
linkStr.Append($"<li class=\"page-item\"><a class=\"page-link\" href='?pageIndex={i}' >第{i}页</a></li>");
}
}
if (pageIndex < pageCount)
{
linkStr.Append($"<li class=\"page-item\"><a class=\"page-link\" href='?pageIndex={pageIndex + 1}' >&raquo;</a></li>");
linkStr.Append($"<li class=\"page-item\"><a class=\"page-link\" href='?pageIndex={pageCount}' >尾页</a></li>");
}
linkStr.Append("</ul>");
return linkStr.ToString();
}
}
}

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

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基础教程第2版】——第一讲:基础知识

    1.长字符串:(用三引号如'''或者"""来引起来) >>> print """This is a very log st ...

  2. c语言重载(overriding in C)或函数不定参数个数

    google一下 c overiding发现有这样一段英文解释: Because C doesn't require that you pass all parameters to the funct ...

  3. 《计算机网络》谢希仁(第7版) 第四章 c语言http://c.biancheng.net/cpp/html/3137.html

    第四章 网络层 电信网使用面向连接的通信方式,使电信网络能够向用户提供可靠传输的服务. 互联网设计思路:网络层向上只提供简单灵活的.无连接的.尽最大努力交付的数据报(分组)服务. 网络层不提供可靠传输 ...

  4. loadrunner12.5-添加检查点

    1.点击缩略图资源管理器,找到需要添加检查点的页面. 2.选中需要添加检查点的页面,切换到快照tab,选择“树”型显示方式. 3.在响应窗口下,找到需要添加的检查点的内容,选中--右键--添加文本检查 ...

  5. IG—金字塔

    博客链接 选择困难症的福音--团队Scrum冲刺阶段-Day 1领航 选择困难症的福音--团队Scrum冲刺阶段-Day 2 选择困难症的福音--团队Scrum冲刺阶段-Day 3 选择困难症的福音- ...

  6. npm 如何设置镜像站为淘宝网

    转载 2015年06月24日 17:12:12 10542 淘宝镜像:http://npm.taobao.org/ 镜像使用方法(三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候 ...

  7. 摹客项目在2018年工信部"创客中国"名列10强并荣获二等奖

    2018“创客中国”互联网+大数据创新创业大赛(暨2018创客中国产业投资峰会)8月19日在厦门进行了总决赛.大赛由国家工业和信息化部.厦门市人民政府主办,厦门文广集团等承办.工信部信息中心领导.厦门 ...

  8. Linux多线程服务端编程 使用muduo C++网络库 学习笔记 日志log

    代码来自陈硕开源代码库 muduo中 地址是https://github.com/chenshuo/muduo #pragma once #include <string> #define ...

  9. Plugin 'Scala' is incompatible with this.installation

    ==问题=== 手动安装IDEA的Scala插件,报这个错误. ===原因=== IDEA的版本与Scala插件的版本不兼容. ===解决=== 1.查看一下IDEA的版本 2.下载对应版本的Scal ...

  10. JavaScript的replace方法与正则表达式结合应用讲解

    大家好!!今晚在华软G43*宿舍没什么事做,把javascript中replace方法讲解一下,如果讲得不对或不合理是情理之中的事,因为我不是老鸟,也不是菜鸟,我也不知道我当底是什么鸟??呵~~ re ...