最近在参考Discuz.nt的源码,虽说他们的这种模式比较另类,或者不容易接受(个人感觉),不过还是有蛮多实用的代码,就像这段手工分页代码,参考了下下。 /**//// <summary> /// 获得页码显示链接 /// </summary> /// <param name="curPage">当前页数</param> /// <param name="countPage">总页数</param> /// <param name="url">超级链接地址</param> /// <param name="extendPage">周边页码显示个数上限</param> /// <returns>页码html</returns> public static string GetPageNumbers(int curPage, int countPage, string url, int extendPage) { int startPage = 1; int endPage = 1; if(url.IndexOf("?") > 0) { url = url + "&"; } else { url = url + "?"; } string t1 = "<a href=\"" + url + "&page=1" + "\">«</a> "; string t2 = "<a href=\"" + url + "&page=" + countPage + "\">»</a> "; if(countPage < 1) countPage = 1; if(extendPage < 3) extendPage = 2; if(countPage > extendPage) { if(curPage - (extendPage / 2) > 0) { if(curPage + (extendPage / 2) < countPage) { startPage = curPage - (extendPage / 2); endPage = startPage + extendPage - 1; } else { endPage = countPage; startPage = endPage - extendPage + 1; t2 = ""; } } else { endPage = extendPage; t1 = ""; } } else { startPage = 1; endPage = countPage; t1 = ""; t2 = ""; } StringBuilder s = new StringBuilder(""); s.Append(t1); for (int i = startPage; i <= endPage; i++) { if (i == curPage) { s.Append(" "); s.Append(i); s.Append(" "); } else { s.Append(" <a href=\""); s.Append(url); s.Append("page="); s.Append(i); s.Append("\">"); s.Append(i); s.Append("</a> "); } } s.Append(t2); return s.ToString(); } 注:源代码出自Discuz.NET 1.0 转载于:https://www.cnblogs.com/bylee/archive/2008/01/29/1057593.html