View Code
using System;
using System.Web;
using System.Text;
/// <summary>
/// Summary description for PageHelper
/// </summary>
public class PageHelper
{
/// <summary>
/// 根据当前页码检查分页要显示那一段的分页页码,返回当前页面要显示的第一个页码
/// </summary>
/// <param name="curPage"> 当前页码 </param>
/// <returns></returns>
private int CheckPage( int curPage)
{
string curpage_str = curPage.ToString();
int FirstpageChart = 0 ;
if (curpage_str.Length == 1 )
{
return 1 ;
}
else
{
string tml = curpage_str.Substring( 0 , curpage_str.Length - 1 );
FirstpageChart = Convert.ToInt32(tml);
/**/
/* 如果当前是第十页(或二十页)就会有这些情况,本来要到前十页的却到了十到二十页
* 当取得的页码第一位的值乘十后等于当前页码,就把取得的页码第一位减一后乘十返回
* 否则就返回取得的页码第一位的值乘十的值
*/
return FirstpageChart * 10 == curPage ? (curPage - 9 ) : (FirstpageChart * 10 + 1 );
}
}
/// <summary>
/// 生成页面字符
/// </summary>
/// <param name="countPage"> 总页数 </param>
/// <param name="curPage"> 当前页 </param>
/// <param name="url"> 页面url地址如“xxx.aspx” </param>
/// <returns></returns>
public string HtmlPage( int curPage, int countPage, string url, string paramName)
{
StringBuilder htm = new StringBuilder();
int lastpage = CheckPage(curPage);
int Num = lastpage + 9 ;
if (Num <= countPage)
{
for ( int i = 0 ; i < 10 ; i ++ )
{
htm.AppendFormat( " {0} " , Format(lastpage + i, curPage, url, paramName));
}
}
else if (Num > countPage)
{
int Count = countPage - (lastpage - 1 ) * 10 ;
for ( int i = 0 ; i < Count; i ++ )
{
htm.AppendFormat( " {0} " , Format(lastpage + i, curPage, url, paramName));
}
}
return htm.ToString();
}
/// <summary>
/// 格式化页码
/// </summary>
/// <param name="i"> 页码 </param>
/// <param name="curPage"> 当前页 </param>
/// <param name="url"> 页面url地址如“xxx.aspx” </param>
/// <param name="paramName"> 参数名称 </param>
/// <returns></returns>
protected virtual string Format( int i, int curPage, string url, string paramName)
{
return curPage == i ? string .Format( " {0} " , i) : string .Format( " <a href='{0}?{1}={2}'>{3}</a> " ,
url, paramName, i, i);
}
}
using System;
using System.Web;
using System.Text;
/// <summary>
/// Summary description for PageHelper
/// </summary>
public class PageHelper
{
/// <summary>
/// 根据当前页码检查分页要显示那一段的分页页码,返回当前页面要显示的第一个页码
/// </summary>
/// <param name="curPage"> 当前页码 </param>
/// <returns></returns>
private int CheckPage( int curPage)
{
string curpage_str = curPage.ToString();
int FirstpageChart = 0 ;
if (curpage_str.Length == 1 )
{
return 1 ;
}
else
{
string tml = curpage_str.Substring( 0 , curpage_str.Length - 1 );
FirstpageChart = Convert.ToInt32(tml);
/**/
/* 如果当前是第十页(或二十页)就会有这些情况,本来要到前十页的却到了十到二十页
* 当取得的页码第一位的值乘十后等于当前页码,就把取得的页码第一位减一后乘十返回
* 否则就返回取得的页码第一位的值乘十的值
*/
return FirstpageChart * 10 == curPage ? (curPage - 9 ) : (FirstpageChart * 10 + 1 );
}
}
/// <summary>
/// 生成页面字符
/// </summary>
/// <param name="countPage"> 总页数 </param>
/// <param name="curPage"> 当前页 </param>
/// <param name="url"> 页面url地址如“xxx.aspx” </param>
/// <returns></returns>
public string HtmlPage( int curPage, int countPage, string url, string paramName)
{
StringBuilder htm = new StringBuilder();
int lastpage = CheckPage(curPage);
int Num = lastpage + 9 ;
if (Num <= countPage)
{
for ( int i = 0 ; i < 10 ; i ++ )
{
htm.AppendFormat( " {0} " , Format(lastpage + i, curPage, url, paramName));
}
}
else if (Num > countPage)
{
int Count = countPage - (lastpage - 1 ) * 10 ;
for ( int i = 0 ; i < Count; i ++ )
{
htm.AppendFormat( " {0} " , Format(lastpage + i, curPage, url, paramName));
}
}
return htm.ToString();
}
/// <summary>
/// 格式化页码
/// </summary>
/// <param name="i"> 页码 </param>
/// <param name="curPage"> 当前页 </param>
/// <param name="url"> 页面url地址如“xxx.aspx” </param>
/// <param name="paramName"> 参数名称 </param>
/// <returns></returns>
protected virtual string Format( int i, int curPage, string url, string paramName)
{
return curPage == i ? string .Format( " {0} " , i) : string .Format( " <a href='{0}?{1}={2}'>{3}</a> " ,
url, paramName, i, i);
}
}