public void RenderPager() { if (urlManager == null) throw new ArgumentNullException("IUrlManager 不能为 Null"); PagerString += "<div class=\"" + CssClass + "\">"; // 获取当前页 currentPage = urlManager.CurrentPageIndex; // 获取总页数 pageCount = urlManager.PageCount; SetStartPage(); SetEndPage(); PageLink link; // 循环打印链接 for (int i = startPage; i <= endPage; i++) { // 如果需要显示前一页、第一页链接 if (showPrevious) { AddPreviousLink(urlManager); } link = new PageLink(); if (i == currentPage) { link.Css = "CurrentPage"; } link.Text = i.ToString(); link.Url = urlManager.GetPageUrl(i); AddLinkToPagerString(link); // 如果需要显示 下一页、最末页 链接 if (i == endPage && showNext) { AddNextLink(urlManager); } } PagerString += String.Format(" <span>( 第<b>{0}</b>页/共<b>{1}</b>页 )</span>", currentPage, pageCount); PagerString += "</div>"; }
// 添加“第一页”,“上一页”的连接 private void AddPreviousLink(UrlManager urlManager) { PageLink first = new PageLink(); first.Css = "PagerIcon"; first.Text = "<<"; first.Url = urlManager.GetPageUrl(1); AddLinkToPagerString(first); PageLink previous = new PageLink(); previous.Css = "PagerIcon"; previous.Text = "<"; previous.Url = urlManager.GetPageUrl(currentPage - 1); AddLinkToPagerString(previous); showPrevious = false; // 只显示一次 }
public void AddLinkToPagerString(PageLink link) { PagerString += "<a class=\"" + link.Css + "\" href=\"" + link.Url + "\">" + link.Text + "</a>"; }
// 添加 “下一页”、“最末页” 的链接 private void AddNextLink(UrlManager urlManager) { PageLink next = new PageLink(); next.Css = "PagerIcon"; next.Text = ">"; next.Url = urlManager.GetPageUrl(currentPage + 1); AddLinkToPagerString(next); PageLink last = new PageLink(); last.Css = "PagerIcon"; last.Text = ">>"; last.Url = urlManager.GetPageUrl(pageCount); AddLinkToPagerString(last); showNext = false; // 可有可无,程序会跳出循环 }