类似baidu google分页页码效果的代码
以后做图片网站用过,现在只写出代码,其实没什么技术含量,只是最近工作不顺,心情稍差,思维有点懒惰,工作的时候需要抄过来用用OK,所才Post在此.
/// <summary>
/// 创建并显示分页器
/// </summary>
private void BuildPager(int totalRecords,int currentPage,int pageSize,int pid)
{
int alter = 4 ;
int startPage = 1 ;
int endPage = currentPage + alter ;
int totalPages = this.CalculateTotalPages(totalRecords,pageSize) ;

if(currentPage > alter)
{
startPage = currentPage - alter ;
}

if(endPage > totalPages)
{
endPage = totalPages ;
}

string strTemp = @"<a href='PhotoList.aspx?pid={0}&pno={1}'>{2}</a> " ;
StringBuilder sb = new StringBuilder("") ;
if(currentPage != startPage)
{
sb.Append( string.Format( strTemp , pid , 1 , "上一页" ) ) ;
}

for( int i = startPage ; i <= endPage ; i++ )
{
if( currentPage == i )
{
sb.Append("<font color=red>" + i + "</font> ") ;
}
else
{
sb.Append( string.Format( strTemp , pid , i ,"[" + i + "]" ) ) ;
}
}

if(currentPage != endPage)
{
sb.Append( string.Format( strTemp , pid , currentPage + 1 , "下一页") ) ;
}

this.ltlShowPager.Text = sb.ToString() ;
}

/// <summary>
/// 计算总页数
/// </summary>
/// <param name="totalRecords">总记录数</param>
/// <param name="pageSize">每页记录数</param>
private int CalculateTotalPages(int totalRecords, int pageSize)
{
int totalPagesAvailable;

totalPagesAvailable = totalRecords / pageSize;

//由于C#的整形除法 会把所有余数舍入为0,所以需要判断是否需要加1
if ((totalRecords % pageSize) > 0)
totalPagesAvailable++;

return totalPagesAvailable;
}
































































【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?