PageTabList.cs 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace LYFZ.WXLibrary
  6. {
  7. public class PageTabList
  8. {
  9. /// <summary>
  10. /// 分页函数
  11. /// 总页数,总记录数,当前页,每页记录数
  12. /// </summary>
  13. public static string GetPagingInfo_Web(int byPageCount, int byPageNum, string countInfo="")
  14. {
  15. string vBaseUrl = System.Web.HttpContext.Current.Request.Url.PathAndQuery;
  16. string rUrl = CommonHandleClass.Fun_AddQueryToURL(vBaseUrl, "page", "{page}");
  17. //获取左右数量
  18. int i;
  19. int j;
  20. int loopnum1;
  21. int loopnum2;
  22. loopnum1 = 3; //前面数量
  23. loopnum2 = 3; //后面数量
  24. i = byPageNum - loopnum1;
  25. j = byPageNum + loopnum2;
  26. if (i < 1)
  27. {
  28. j = j + (1 - i);
  29. i = 1;
  30. }
  31. if (j > byPageCount)
  32. {
  33. i = i + (byPageCount - j);
  34. j = byPageCount;
  35. if (i < 1)
  36. {
  37. i = 1;
  38. }
  39. }
  40. //主要链接
  41. string firstlink;
  42. string lastlink;
  43. string prelink;
  44. string nextlink;
  45. firstlink = "<a href=\"" + CommonHandleClass.Fun_RemoveQueryFromURL(vBaseUrl, "page") + "\">首页</a>"; //首页
  46. prelink = "<a href=\"" + rUrl.Replace("{page}", (byPageNum - 1).ToString()) + "\">上一页</a>"; //上一页
  47. nextlink = "<a href=\"" + rUrl.Replace("{page}", (byPageNum + 1).ToString()) + "\">下一页</a>"; //下一页
  48. lastlink = "<a href=\"" + rUrl.Replace("{page}", byPageCount.ToString()) + "\">尾页</a>"; //尾页
  49. //上一页链接判断
  50. if (byPageNum == 2)
  51. {
  52. prelink = "<a href=\"" + CommonHandleClass.Fun_RemoveQueryFromURL(vBaseUrl, "page") + "\">上一页</a>";
  53. }
  54. //第一页无首页及上一页
  55. if (byPageNum == 1)
  56. {
  57. firstlink = "";
  58. prelink = "";
  59. }
  60. // 最后一页无下一页及尾页
  61. if (byPageNum == byPageCount)
  62. {
  63. lastlink = "";
  64. nextlink = "";
  65. }
  66. //不足一次显示数量就不显示首页及尾页
  67. if (byPageCount <= loopnum1 + loopnum2 + 1)
  68. {
  69. firstlink = "";
  70. lastlink = "";
  71. }
  72. //返回链接
  73. string looplink = "";
  74. string thislink;
  75. //int p = 0;
  76. for (int p = i; p <= j; p++)
  77. {
  78. if (p == byPageNum)
  79. {
  80. thislink = "class=\"nowpage\"";
  81. }
  82. else
  83. {
  84. thislink = "";
  85. }
  86. if (p == 1)
  87. {
  88. looplink = looplink + "<a href=\"" + CommonHandleClass.Fun_RemoveQueryFromURL(vBaseUrl, "page") + "\" " + thislink + ">1</a>";
  89. }
  90. else
  91. {
  92. looplink = looplink + "<a href=\"" + rUrl.Replace("{page}", p.ToString()) + "\" " + thislink + ">" + p + "</a>";
  93. }
  94. }
  95. return "<div class=\"page_css\">" + countInfo + firstlink + prelink + looplink + nextlink + lastlink + "</div>";
  96. }
  97. /// <summary>
  98. /// 分页函数
  99. /// int byPageCount, int byPageNum, int byPageSize
  100. /// </summary>
  101. public static string GetPagingInfo_Manage(int byPageCount, int byPageNum, string countInfo = "")
  102. {
  103. string vBaseUrl = System.Web.HttpContext.Current.Request.Url.PathAndQuery;
  104. string rUrl = CommonHandleClass.Fun_AddQueryToURL(vBaseUrl, "page", "{page}");
  105. //获取左右数量
  106. int i;
  107. int j;
  108. int loopnum1;
  109. int loopnum2;
  110. loopnum1 = 4; //前面数量
  111. loopnum2 = 5; //后面数量
  112. i = byPageNum - loopnum1;
  113. j = byPageNum + loopnum2;
  114. if (i < 1)
  115. {
  116. j = j + (1 - i);
  117. i = 1;
  118. }
  119. if (j > byPageCount)
  120. {
  121. i = i + (byPageCount - j);
  122. j = byPageCount;
  123. if (i < 1)
  124. {
  125. i = 1;
  126. }
  127. }
  128. //主要链接
  129. string firstlink;
  130. string lastlink;
  131. string prelink;
  132. string nextlink;
  133. string morefirstlink;
  134. string morenextlink;
  135. firstlink = "<a href=\"" + CommonHandleClass.Fun_RemoveQueryFromURL(vBaseUrl, "page") + "\">首页</a>"; //首页
  136. morefirstlink = "<a href=\"" + rUrl.Replace("{page}", (i - 1).ToString()) + "\">...</a>";
  137. prelink = "<a href=\"" + rUrl.Replace("{page}", (byPageNum - 1).ToString()) + "\">上一页</a>"; //上一页
  138. nextlink = "<a href=\"" + rUrl.Replace("{page}", (byPageNum + 1).ToString()) + "\">下一页</a>"; //下一页
  139. morenextlink = "<a href=\"" + rUrl.Replace("{page}", (j + 1).ToString()) + "\">...</a>";
  140. lastlink = "<a href=\"" + rUrl.Replace("{page}", byPageCount.ToString()) + "\">尾页</a>"; //尾页
  141. //上一页链接判断
  142. if (byPageNum == 2)
  143. {
  144. prelink = "<a href=\"" + CommonHandleClass.Fun_RemoveQueryFromURL(vBaseUrl, "page") + "\">上一页</a>";
  145. }
  146. //第一页无首页及上一页
  147. if (byPageNum == 1)
  148. {
  149. firstlink = "";
  150. prelink = "";
  151. }
  152. // 最后一页无下一页及尾页
  153. if (byPageNum == byPageCount)
  154. {
  155. lastlink = "";
  156. nextlink = "";
  157. }
  158. //不足一次显示数量就不显示首页及尾页
  159. if (byPageCount <= loopnum1 + loopnum2 + 1)
  160. {
  161. firstlink = "";
  162. lastlink = "";
  163. }
  164. if (byPageNum - loopnum1 < i || i - 1 == 0)
  165. {
  166. morefirstlink = "";
  167. }
  168. if (j - loopnum2 < byPageNum || j + 1 > byPageCount)
  169. {
  170. morenextlink = "";
  171. }
  172. //返回链接
  173. string looplink = "";
  174. string thislink;
  175. //int p = 0;
  176. for (int p = i; p <= j; p++)
  177. {
  178. if (p == byPageNum)
  179. {
  180. thislink = "class=\"cpb\"";
  181. }
  182. else
  183. {
  184. thislink = "";
  185. }
  186. if (p == 1)
  187. {
  188. looplink = looplink + "<a href=\"" + CommonHandleClass.Fun_RemoveQueryFromURL(vBaseUrl, "page") + "\" " + thislink + ">1</a>";
  189. }
  190. else
  191. {
  192. looplink = looplink + "<a href=\"" + rUrl.Replace("{page}", p.ToString()) + "\" " + thislink + ">" + p + "</a>";
  193. }
  194. }
  195. return "<div class=\"page_css\">" + countInfo + firstlink + prelink + morefirstlink + looplink + morenextlink + nextlink + lastlink + "</div>";
  196. //return "";
  197. }
  198. }
  199. }