html列表静态分页,Html列表分页算法

本文介绍了一个用于创建动态分页的PageHelper类,它根据页面数和当前页位置,自适应地生成美观的页码显示,适用于各种网页或应用的分页需求。算法考虑了不同情况下的页面展示策略,如总页数少于5时显示所有页码,超过5页时采用省略号和当前页突出显示的设计。
摘要由CSDN通过智能技术生成

public classPageHelper

{///

///标签///

public string Tag { get; set; }///

///选中的标签样式///

public string TagCurr { get; set; }///

///分页的路径///

public string Url { get; set; }///

///当前页///

public int PageIdnex { get; set; }///

///总页数///

public int PageCount { get; set; }///

///实现分页算法///

///

public stringCreatePage( )

{//1.1当前页大于总页数

if (PageIdnex > PageCount) return null;

StringBuilder sb= newStringBuilder();//1.2当总页数小于5条时,显示全部的页码

if (PageCount <= 5)

{//拼接页码

for (int i = 1; i <= PageCount; i++)

{if (PageIdnex ==i)

{//拼接当前页

sb.Append($"{i}");

}else{

sb.Append($"{i}");

}

}returnsb.ToString();

}else{//2.2 总页数大于5,当前页小于4时

if (PageIdnex <= 4)

{//2.2.1 当前页靠近尾页

if (PageCount - PageIdnex <= 3)

{//拼接第一页

sb.Append($"1...");for (int i = PageIdnex - 1; i <= PageCount; i++)

{if (PageIdnex ==i)

{//拼接当前页

sb.Append($"{i}");

}else{

sb.Append($"{i}");

}

}

}else{//2.2.2当前页靠近首页

for (int i = 1; i <= PageIdnex + 2; i++)

{if (PageIdnex ==i)

{

sb.Append($"{i}");

}else{

sb.Append($"{i}");

}

}//拼接最后一页

sb.Append($"...{PageCount}>");

}

}else{//2.3 总页数大于5,当前页大于4时

sb.Append($"1...");//2.3.1 当前页大于4,当前页离尾页很近

if (PageCount - PageIdnex <= 2)

{for (int i = PageIdnex - 2; i <= PageCount; i++)

{if (PageIdnex ==i)

{

sb.Append($"{i}");

}else{

sb.Append($"{i}");

}

}

}else{//2.3.2当前页在中间

for (int i = PageIdnex - 2; i < PageIdnex + 2; i++)

{if (PageIdnex ==i)

{

sb.Append($"{i}");

}else{

sb.Append($"{i}");

}

}

sb.Append($"...{PageCount}>");

}

}returnsb.ToString();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值