类似Baidu Google分页页码效果的代码
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
/// <summary>
/// Pagenumber 的摘要说明
/// </summary>
public static class Pagenumber
{
/// <summary>
/// 创建并显示分页器
/// </summary>
public static string BuildPager(int totalRecords, int currentPage, int pageSize, int pid)
{
int alter = 4;
int startPage = 1;
int endPage = currentPage + alter;
int totalPages = CalculateTotalPages(totalRecords, pageSize);
if (currentPage > alter)
{
startPage = currentPage - alter;
}
if (endPage > totalPages)
{
endPage = totalPages;
}
string strTemp = @" <a href='Default.aspx?p={0}&pno={1}'>{2}</a> ";
StringBuilder sb = new StringBuilder("");
if (currentPage != startPage)
{
sb.Append(string.Format(strTemp, currentPage - 1, currentPage - 1, " 上一页 "));
}
for (int i = startPage; i <= endPage; i++)
{
if (currentPage == i)
{
sb.Append(" <font color=red> " + i + " </font> ");
}
else
{
sb.Append(string.Format(strTemp, i, i, "[" + i + "]"));
}
}
if (currentPage != endPage)
{
sb.Append(string.Format(strTemp, currentPage + 1, currentPage + 1, " 下一页 "));
}
return sb.ToString();
}
/**/ /// <summary>
/// 计算总页数
/// </summary>
/// <param name="totalRecords"> 总记录数 </param>
/// <param name="pageSize"> 每页记录数 </param>
public static int CalculateTotalPages(int totalRecords, int pageSize)
{
int totalPagesAvailable;
totalPagesAvailable = totalRecords / pageSize;
// 由于C#的整形除法 会把所有余数舍入为0,所以需要判断是否需要加1
if ((totalRecords % pageSize) > 0)
totalPagesAvailable++;
return totalPagesAvailable;
}
}


浙公网安备 33010602011771号