TagHelper分页代码
2017-12-29 14:27 aitkon 阅读(310) 评论(0) 收藏 举报https://www.cnblogs.com/wangrudong003/p/5705744.html
这篇文章中,默认的分页样式是有多页,就显示多少页,这个实际情况中并不实用
所以临时改进,页码同时最多显示10页,超出部分显示省略号,并且有首页和尾页。
下面是相关代码:
//构造分页样式
var sbPage = new StringBuilder(string.Empty);
switch (PagerOption.StyleNum)
{
case 2:
{
break;
}
default:
{
#region 默认样式
sbPage.Append("<nav>");
sbPage.Append($"<div>共{totalPage}页,{PagerOption.Records}条记录</div>");
sbPage.Append(" <ul>");
if (PagerOption.CurrentPage > 1)
{
sbPage.AppendFormat($"<li><a href=\"{PagerOption.RouteUrl}/1\" aria-label=\"Previous\"><span aria-hidden=\"true\">首页</span></a></li>");
sbPage.AppendFormat($"<li><a href=\"{PagerOption.RouteUrl}/{PagerOption.CurrentPage - 1}\" aria-label=\"Previous\"><span aria-hidden=\"true\">«</span></a></li>");
}
int firstNum = 0,CentNum = 0, lastNum = 0;
if (PagerOption.CurrentPage < centSize)
{
firstNum = 1;
}
else
{
firstNum = PagerOption.CurrentPage - (centSize / 2);
if (firstNum > totalPage - centSize)
{
firstNum = totalPage - centSize;
}
}
lastNum = totalPage;
if (lastNum > centSize)
lastNum = firstNum + centSize;
if (PagerOption.CurrentPage >= centSize)
{
CentNum = PagerOption.CurrentPage + centSize - ((centSize / 2) + 1); //中间结束的页码
sbPage.Append("<li class=\"more\"><span>...</span></li>");
}
for (int i = firstNum; i <= lastNum; i++)
{
string strClass = i == PagerOption.CurrentPage ? "class=\"active\"" : "";
sbPage.AppendFormat($"<li {strClass}><a href=\"{PagerOption.RouteUrl}/{i}\">{i}</a></li>");
}
if (totalPage - PagerOption.CurrentPage > centSize - ((centSize / 2)))
{
sbPage.Append("<li class=\"more\"><span>...</span></li>");
}
if (PagerOption.CurrentPage < lastNum)
{
int nextPage = PagerOption.CurrentPage + 1 > totalPage ? PagerOption.CurrentPage : PagerOption.CurrentPage + 1;
sbPage.AppendFormat($"<li><a href=\"{PagerOption.RouteUrl}/{nextPage}\" aria-label=\"Next\"><span aria-hidden=\"true\">»</span></a></li>");
sbPage.AppendFormat($"<li><a href=\"{PagerOption.RouteUrl}/{totalPage}\" aria-label=\"Next\"><span aria-hidden=\"true\">尾页</span></a></li>");
}
sbPage.Append("</ul>");
sbPage.Append("</nav>");
#endregion
}
break;
}
浙公网安备 33010602011771号