using System; using System.Collections.Generic; using System.Web; using System.Text; using System.Text.RegularExpressions; namespace Basic.Engine.Get { /// /// 获取分页代码 /// public static class PagiNation { /// /// 获取分页代码(总页数,当前页) /// /// /// 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("
"); strFenye.Append("
"); if (NowPage > 1)//第一页的时候 不显示上一页 { strFenye.Append("«上一页"); } if (NowPage != 1)//当前页不是第一页的时候始终显示 第一页 { strFenye.Append("1"); } if (NowPage >= 5)//当前页大于5时候 显示 ... { strFenye.Append("..."); for (int i = 2; i <= NowPage - 3; i++) { strFenye.Append("" + i + ""); } } if (TotelPage < 6) { #region 总页数小于5时 // for (int i = 0; i < (TotelPage + 1); i++) { if (i > 0) { if (i == NowPage) { strFenye.Append("" + i + ""); } else { if (i != 1) { strFenye.Append("" + i + ""); } } } } #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("" + i + ""); } else { if (i != 1 && i != TotelPage) { strFenye.Append("" + i + ""); } } } } if (NowPage == TotelPage - 2) { strFenye.Append("" + (NowPage + 1) + ""); } if (NowPage + 3 < TotelPage) { strFenye.Append("..."); for (int i = NowPage + 3; i <= TotelPage - 1; i++) { strFenye.Append("" + i + ""); } } if (NowPage != TotelPage) { strFenye.Append("" + TotelPage + ""); } #endregion } if (NowPage < TotelPage)//最后一页 不显示下一页 { strFenye.Append("下一页»"); } strFenye.Append("
"); strFenye.Append("
"); } return strFenye.ToString(); } } }