/// <summary> |
/// 生成页码的html |
/// </summary> |
/// <param name="urlFormat">超链接的格式。list.ashx?pagenum={pageNum}。地址中用{pagenum}做为当前页码的占位符</param></param> |
/// <param name="totalSize">总数据条数</param> |
/// <param name="pageSize">每页多少条数据</param> |
/// <param name="currentPage">当前页</param> |
/// <returns></returns> |
public static RawString Pager( string urlFormat, long totalSize, |
long pageSize, long currentPage) |
{ |
StringBuilder sb = new StringBuilder(); |
//总页数 |
long totalPageCount = ( long )Math.Ceiling((totalSize * 1.0f) / (pageSize * 1.0f)); |
//当前页的前几页 |
long firstPage = Math.Max(currentPage - 5, 1); |
//当前页的后几页 |
long lastPage = Math.Min(currentPage + 6, totalPageCount); |
//绘制分页,首页 |
sb.AppendLine( "<div><a href='" + urlFormat.Replace( "{pageNum}" , "1" ) + "'>首页</a>" ); |
//绘制分页中间数据部分 |
for ( long i = firstPage; i < lastPage; i++) |
{ |
string url = urlFormat.Replace( "{pageNum}" , i.ToString()); |
if (i == currentPage) //点击后就不显示超链接 |
{ |
sb.AppendLine( "<a>" + i + "</a>" ); |
} |
else |
{ |
sb.AppendLine( "<a href='" + url + "'>" + i + "</a>" ); |
} |
} |
//显示最后一页 |
sb.AppendLine( "<a href='" + urlFormat.Replace( "{pageNum}" , totalPageCount.ToString()) + "'>末页</a></div>" ); |
return new RawString(sb.ToString()); |
} |