using System;
using System.Text;
namespace WebDemo.Common
{
 public class LaomaPager
 {
 /// <summary>
 /// 
 /// </summary>
 /// <param name="pageSize">一页多少条</param>
 /// <param name="currentPage">当前页</param>
 /// <param name="totalCount">总条数</param>
 /// <returns></returns>
 public static string ShowPageNavigate(int pageSize, int currentPage, int totalCount)
 {
 string redirectTo = "";
 pageSize = pageSize == 0 ? 3 : pageSize;
 var totalPages = Math.Max((totalCount + pageSize - 1) / pageSize, 1); //总页数
 var output = new StringBuilder();
 if (totalPages > 1)
 {
 if (currentPage != 1)
 {//处理首页连接
 output.AppendFormat("<a class='pageLink' href='{0}?pageIndex=1&pageSize={1}'>首页</a> ", redirectTo, pageSize);
 }
 if (currentPage > 1)
 {//处理上一页的连接
 output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>上一页</a> ", redirectTo, currentPage - 1, pageSize);
 }
 else
 {
 // output.Append("<span class='pageLink'>上一页</span>");
 }
 output.Append(" ");
 int currint = 5;
 for (int i = 0; i <= 10; i++)
 {//一共最多显示10个页码,前面5个,后面5个
 if ((currentPage + i - currint) >= 1 && (currentPage + i - currint) <= totalPages)
 {
 if (currint == i)
 {//当前页处理
 //output.Append(string.Format("[{0}]", currentPage));
 output.AppendFormat("<a class='cpb' href='{0}?pageIndex={1}&pageSize={2}'>{3}</a> ", redirectTo, currentPage, pageSize, currentPage);
 }
 else
 {//一般页处理
 output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>{3}</a> ", redirectTo, currentPage + i - currint, pageSize, currentPage + i - currint);
 }
 }
 output.Append(" ");
 }
 if (currentPage < totalPages)
 {//处理下一页的链接
 output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>下一页</a> ", redirectTo, currentPage + 1, pageSize);
 }
 else
 {
 //output.Append("<span class='pageLink'>下一页</span>");
 }
 output.Append(" ");
 if (currentPage != totalPages)
 {
 output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>末页</a> ", redirectTo, totalPages, pageSize);
 }
 output.Append(" ");
 }
 output.AppendFormat("第{0}页 / 共{1}页", currentPage, totalPages);//这个统计加不加都行
 return output.ToString();
 }
 }
}
后台的调用方法:
//生成 分页的标签
 NavString= Common.LaomaPager.ShowPageNavigate(pageSize, pageIndex, allCount);
前台的调用方法:
<style type="text/css">
 .paginator {
 font: 12px Arial, Helvetica, sans-serif;
 padding: 10px 20px 10px 0;
 margin: 0px;
 }
 .paginator a {
 border: solid 1px #ccc;
 color: #0063dc;
 cursor: pointer;
 text-decoration: none;
 }
 .paginator a:visited {
 padding: 1px 6px;
 border: solid 1px #ddd;
 background: #fff;
 text-decoration: none;
 }
 .paginator .cpb {
 border: 1px solid #F50;
 font-weight: 700;
 color: #F50;
 background-color: #ffeee5;
 }
 .paginator a:hover {
 border: solid 1px #F50;
 color: #f60;
 text-decoration: none;
 }
 .paginator a, .paginator a:visited, .paginator .cpb, .paginator a:hover {
 float: left;
 height: 16px;
 line-height: 16px;
 min-width: 10px;
 _width: 10px;
 margin-right: 5px;
 text-align: center;
 white-space: nowrap;
 font-size: 12px;
 font-family: Arial,SimSun;
 padding: 0 3px;
 }
 </style>
<%= NavString %>