public static HtmlString ShowPageNavigate(this HtmlHelper htmlHelper,
int currentPage, int pageSize, int
pageCount)
{
//处理Url保留除pageIndex和pageSize以外的其他参数
var redirectTo =
htmlHelper.ViewContext.RequestContext.HttpContext.Request.Url.AbsolutePath;
redirectTo +=
"?";
string strPageIndex =
"pageIndex";
string strPageSize =
"pageSize";
foreach (string k in
htmlHelper.ViewContext.RequestContext.HttpContext.Request.QueryString.Keys)
{
if (string.Compare(k, strPageIndex, true) != 0 && string.Compare(k,
strPageSize, true) !=
0)
{
redirectTo += k + "=" +
htmlHelper.ViewContext.RequestContext.HttpContext.Request.QueryString[k] +
"&";
}
}
redirectTo = redirectTo.TrimEnd(new char[] { ‘&‘
});
pageSize = pageSize == 0 ? 3 :
pageSize;
// var totalPages = Math.Max((totalCount + pageSize - 1) / pageSize, 1);
//总页数
var
totalPages =
pageCount;
var output = new
StringBuilder();
if (totalPages >
1)
{
if (currentPage >
1)
{
output.AppendFormat("<li ><span><a class=‘pageLink‘
href=‘{0}&pageIndex={1}&pageSize={2}‘>上一页</a></span></li>
", redirectTo, currentPage - 1,
pageSize);
}
if (currentPage !=
1)
{
output.AppendFormat("<li ><span><a class=‘pageLink‘
href=‘{0}&pageIndex={1}&pageSize={2}‘>1</a></span></li>
", redirectTo, 1,
pageSize);
}
if (currentPage >
3)
{
output.AppendFormat("<li ><span><a
class=‘pageLink‘>...</a></span></li>
");
}
if (currentPage >
2)
{
output.AppendFormat("<li ><span><a class=‘pageLink‘
href=‘{0}&pageIndex={1}&pageSize={2}‘>{3}</a></span></li>
", redirectTo, currentPage - 1, pageSize, currentPage -
1);
}
//当前页
if (currentPage > 0 && currentPage <=
totalPages)
{
output.AppendFormat("<li class=‘active‘><span><a class=‘pageLink‘
href=‘{0}&pageIndex={1}&pageSize={2}‘>{3}</a></span></li>
", redirectTo, currentPage, pageSize,
currentPage);
}
if (currentPage + 1 <
totalPages)
{
output.AppendFormat("<li ><span><a class=‘pageLink‘
href=‘{0}&pageIndex={1}&pageSize={2}‘>{3}</a></span></li>
", redirectTo, currentPage + 1, pageSize, currentPage +
1);
}
if (currentPage + 2 <
totalPages)
{
output.AppendFormat("<li ><span><a
class=‘pageLink‘>...</a></span></li>
");
}
if (currentPage !=
totalPages)
{
output.AppendFormat("<li ><span><a class=‘pageLink‘
href=‘{0}&pageIndex={1}&pageSize={2}‘>{3}</a></span></li>
", redirectTo, totalPages, pageSize,
totalPages);
}
if (currentPage <
totalPages)
{
output.AppendFormat("<li ><span><a class=‘‘
href=‘{0}&pageIndex={1}&pageSize={2}‘>下一页</a></span></li>
", redirectTo, currentPage + 1,
pageSize);
}
}
return
new HtmlString(output.ToString());
}