asp.net自制分页页码条控件
用过微软的服务器控件分页的人都知道~那卡的一A啊~
遂想自制分页页码条控件以备不时之需。
走你~
public static class PageShow { /// <summary> /// 分页页码条 /// </summary> /// <param name="requestHref">请求的地址</param> /// <param name="totalCount">数据总条数</param> /// <param name="currentPage">当前页码</param> /// <param name="pageSize">每页个数</param> /// <returns></returns> public static string Show(string requestHref, int totalCount, int currentPage, int pageSize) { //初始化pageSize和totalPages pageSize = pageSize == 0 ? 6 : pageSize;//默认为每页显示6条数据 var totalPages = Math.Max((totalCount + pageSize - 1) / pageSize, 1);//Math.Ceiling(totalCount / (pageSize / 1.0));//使用Ceiling函数也可以,效果是一样的,根据数据的总条数和每页要显示的个数,计算出总页数,如:共有96条数据,每页显示6条,则总页数为16 var outPut = new StringBuilder();//构建输出字符串 outPut.AppendFormat("<div class='pagination'>");//所有的样式需要自定义 //当总页数大于一页才分页显示,否则直接显示出该页 if (totalPages > 1) { //当前页面不是第一页的时候显示首页链接 if (currentPage != 1) { outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex=1&&pageSize={1}'>首页</a>" , requestHref, pageSize); } //当前页面大于第一页的时候显示上一页链接 if (currentPage > 1) { outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'>上一页</a>" , requestHref, currentPage - 1, pageSize); } //否则上一页无法点击 else { outPut.AppendFormat("<span class='disabled'>上一页</span>"); } outPut.Append(" "); //循环输出页面列表 const int currint = 3; //最多有6个超链接,前3个后3个 for (int i = 0; i < 6; i++) { if (currentPage + i - currint >= 1 && currentPage + i - currint <= totalPages) { if (currint == i) { outPut.AppendFormat("<span class='disabled'>{0}</span>", currentPage + i - currint); } else { outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'>{3}</a>" , requestHref, currentPage + i - currint, pageSize, currentPage + i - currint); } } outPut.Append(" "); } if (currentPage < totalPages) { outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'>下一页</a>" , requestHref, currentPage + 1, pageSize); } else { outPut.AppendFormat("<span class='disabled'>下一页</span>"); } outPut.Append(" "); if (currentPage != totalPages) { outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'>末页</a>" , requestHref, totalPages, pageSize); } outPut.Append(" "); } outPut.AppendFormat("第{0}页/共{1}页", currentPage, totalPages); outPut.AppendFormat("</div>"); return outPut.ToString(); } }