- public class PageHelper
- {
- /// <summary>
- /// 标签
- /// </summary>
- public stringTag {get;set; }
- /// <summary>
- /// 选中的标签样式
- /// </summary>
- public stringTagCurr {get;set; }
- /// <summary>
- /// 分页的路径
- /// </summary>
- public stringUrl {get;set; }
- /// <summary>
- /// 当前页
- /// </summary>
- public intPageIdnex {get;set; }
- /// <summary>
- /// 总页数
- /// </summary>
- public intPageCount {get;set; }
- /// <summary>
- /// 实现分页算法
- /// </summary>
- /// <returns></returns>
- public string CreatePage( )
- {
- //1.1当前页大于总页数
- if(PageIdnex > PageCount)return null;
- StringBuilder sb =new StringBuilder();
- //1.2当总页数小于5条时,显示全部的页码
- if(PageCount <=5)
- {
- //拼接页码
- for(inti =1; i <= PageCount; i++)
- {
- if(PageIdnex == i)
- {
- //拼接当前页sb.Append($"<a onclick=pager(\"{Url}\",{i}) class=\"{TagCurr}\">{i}</a>");
- }
- else
- {
- sb.Append($"<a onclick=pager(\"{Url}\",{i})>{i}</a>");
- }
- }
- return sb.ToString();
- }
- else
- {
- //2.2 总页数大于5,当前页小于4时
- if(PageIdnex <=4)
- {
- //2.2.1 当前页靠近尾页
- if(PageCount - PageIdnex <=3)
- {
- //拼接第一页sb.Append($"<a onclick=pager(\"{Url}\",{1})>1</a><a>...</a>");
- for(inti = PageIdnex -1; i <= PageCount; i++)
- {
- if(PageIdnex == i)
- {
- //拼接当前页sb.Append($"<a onclick=pager(\"{Url}\",{i}) class=\"{TagCurr}\">{i}</a>");
- }
- else
- {
- sb.Append($"<a onclick=pager(\"{Url}\",{i})>{i}</a>");
- }
- }
- }
- else
- {
- //2.2.2当前页靠近首页
- for(inti =1; i <= PageIdnex +2; i++)
- {
- if(PageIdnex == i)
- {
- sb.Append($"<a onclick=pager(\"{Url}\",{i}) class=\"{TagCurr}\">{i}</a>");
- }
- else
- {
- sb.Append($"<a onclick=pager(\"{Url}\",{i})>{i}</a>");
- }
- }
- //拼接最后一页sb.Append($"<a>...</a><a onclick=pager(\"{Url}\",{PageCount})>{PageCount}</>");
- }
- }
- else
- {
- //2.3 总页数大于5,当前页大于4时sb.Append($"<a onclick=pager(\"{Url}\",{1})>1</a><a>...</a>");
- //2.3.1 当前页大于4,当前页离尾页很近
- if(PageCount - PageIdnex <=2)
- {
- for(inti = PageIdnex -2; i <= PageCount; i++)
- {
- if(PageIdnex == i)
- {
- sb.Append($"<a onclick=pager(\"{Url}\",{i}) class=\"{TagCurr}\">{i}</a>");
- }
- else
- {
- sb.Append($"<a onclick=pager(\"{Url}\",{i})>{i}</a>");
- }
- }
- }
- else
- {
- //2.3.2当前页在中间
- for(inti = PageIdnex -2; i < PageIdnex +2; i++)
- {
- if(PageIdnex == i)
- {
- sb.Append($"<a onclick=pager(\"{Url}\",{i}) class=\"{TagCurr}\">{i}</a>");
- }
- else
- {
- sb.Append($"<a onclick=pager(\"{Url}\",{i})>{i}</a>");
- }
- }
- sb.Append($"<a>...</a><a onclick=pager(\"{Url}\",{PageCount})>{PageCount}</>");
- }
- }
- return sb.ToString();
- }
来源: http://www.bubuko.com/infodetail-1989944.html