Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

149 řádky
5.5 KiB

using System;
using System.Collections.Generic;
using System.Web;
using System.Text;
using System.Text.RegularExpressions;
namespace Basic.Engine.Get
{
/// <summary>
/// 获取分页代码
/// </summary>
public static class PagiNation
{
/// <summary>
/// 获取分页代码(总页数,当前页)
/// </summary>
/// <param name="TotelPage"></param>
/// <param name="NowPage"></param>
public static string GetPageHtml(int TotelPage, int NowPage)
{
string NowUrl = HttpContext.Current.Request.RawUrl;
Regex Rzz = new Regex(@"\?page=\d+|\&page=\d+", RegexOptions.IgnoreCase | RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace);
NowUrl = Rzz.Replace(NowUrl, "", 1);
if (NowUrl.ToLower().Contains("?"))
{
NowUrl = NowUrl + "&page=";
}
else
{
NowUrl = NowUrl + "?page=";
}
int prevPage = NowPage - 1;
int nextPage = NowPage + 1;
StringBuilder strFenye = new StringBuilder();
if (TotelPage > 1)
{
strFenye.Append("<div id=\"PageContent\" class=\"flickr\" style=\"text-align: center;\">");
strFenye.Append("<div class=\"pages\">");
if (NowPage > 1)//第一页的时候 不显示上一页
{
strFenye.Append("<span><a href=\"" + NowUrl + prevPage + "\">«上一页</a></span>");
}
if (NowPage != 1)//当前页不是第一页的时候始终显示 第一页
{
strFenye.Append("<span><a href=\"" + NowUrl + "1\">1</a></span>");
}
if (NowPage >= 5)//当前页大于5时候 显示 ...
{
strFenye.Append("<span>...</span>");
for (int i = 2; i <= NowPage - 3; i++)
{
strFenye.Append("<span class=\"pageyc\"><a href=\"" + NowUrl + i + "\">" + i + "</a></span>");
}
}
if (TotelPage < 6)
{
#region 总页数小于5时
//
for (int i = 0; i < (TotelPage + 1); i++)
{
if (i > 0)
{
if (i == NowPage)
{
strFenye.Append("<span class=\"number\">" + i + "</span>");
}
else
{
if (i != 1)
{
strFenye.Append("<span><a href=\"" + NowUrl + i + "\">" + i + "</a></span>");
}
}
}
}
#endregion
}
else
{
#region 总页数大于5时
//
int endPage = 0;
if (TotelPage > NowPage + 2)
{
endPage = NowPage + 2;
}
else
{
endPage = NowPage;
}
//
for (int i = NowPage - 2; i <= endPage; i++)
{
if (i > 0)
{
if (i == NowPage)
{
strFenye.Append("<span class=\"number\">" + i + "</span>");
}
else
{
if (i != 1 && i != TotelPage)
{
strFenye.Append("<span><a href=\"" + NowUrl + i + "\">" + i + "</a></span>");
}
}
}
}
if (NowPage == TotelPage - 2)
{
strFenye.Append("<span><a href=\"" + NowUrl + (NowPage + 1) + "\">" + (NowPage + 1) + "</a></span>");
}
if (NowPage + 3 < TotelPage)
{
strFenye.Append("<span>...</span>");
for (int i = NowPage + 3; i <= TotelPage - 1; i++)
{
strFenye.Append("<span class=\"pageyc\"><a href=\"" + NowUrl + i + "\">" + i + "</a></span>");
}
}
if (NowPage != TotelPage)
{
strFenye.Append("<span><a href=\"" + NowUrl + TotelPage + "\">" + TotelPage + "</a></span>");
}
#endregion
}
if (NowPage < TotelPage)//最后一页 不显示下一页
{
strFenye.Append("<span><a href=\"" + NowUrl + nextPage + "\">下一页»</a></span>");
}
strFenye.Append("</div>");
strFenye.Append("</div>");
}
return strFenye.ToString();
}
}
}