文章分页类库
public class ContentPager : System.Web.UI.Page
{
private System.Web.UI.WebControls.HyperLink lnknext;
private System.Web.UI.WebControls.HyperLink lnkprev;
private System.Web.UI.WebControls.HyperLink lnkfist;
private System.Web.UI.WebControls.HyperLink lnklast;
private System.Web.UI.WebControls.Label pagenum;
private System.Web.UI.WebControls.Label pagecount;
private System.Web.UI.WebControls.Label displaycontent;
public ContentPager()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 绑定分页
/// </summary>
/// <param name="content">文章内容</param>
/// <param name="query">参数</param>
public void datapager(string content, string query)
{
//从web.config中获取分页符,为了方便放到配置文件,分页符可以自己定义
string PagerSplit = System.Configuration.ConfigurationSettings.AppSettings["PagerSplit"];
//根据分页符把内容分割成数组
string[] contentArray = StringSplit(content, PagerSplit);
int PageCount = contentArray.Length;
this.pagecount.Text = "共<b><font color='#FF0000'>" + PageCount.ToString() + "</font></b>页";
int CurPage;
//确定当前页数
if (System.Web.HttpContext.Current.Request.Params["Page"] != null)
{
CurPage = Convert.ToInt32(System.Web.HttpContext.Current.Request.Params["Page"]);
}
else
{
CurPage = 1;
}
if (CurPage < 1) CurPage = 1;
if (Convert.ToInt32(System.Web.HttpContext.Current.Request.Params["Page"]) > PageCount)
{
CurPage = PageCount;
}
//显示当前页数
this.pagenum.Text = "第<b><font color='#FF0000'>" + CurPage.ToString() + "</font></b>页";
//下一页
if (CurPage != PageCount)
{
lnknext.NavigateUrl = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1) + query;
}
//上一页
if (CurPage > 1)
{
lnkprev.NavigateUrl = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1) + query;
}
//第一页
if (CurPage != 1)
{
lnkfist.NavigateUrl = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(1) + query;
}
//最后一页
if (CurPage != PageCount)
{
lnklast.NavigateUrl = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(PageCount) + query;
}
displaycontent.Text = contentArray[CurPage - 1].ToString();
}
#region 文章内容
public System.Web.UI.WebControls.Label DisplayContent
{
get
{
return this.DisplayContent;
}
set
{
this.displaycontent = value;
}
}
#endregion
#region 首页
public System.Web.UI.WebControls.HyperLink Lnkfist
{
get
{
return this.lnkfist;
}
set
{
this.lnkfist = value;
}
}
#endregion
#region 上页
public System.Web.UI.WebControls.HyperLink Lnkprev
{
get
{
return this.lnkprev;
}
set
{
this.lnkprev = value;
}
}
#endregion
#region 下页
public System.Web.UI.WebControls.HyperLink Lnknext
{
get
{
return this.lnknext;
}
set
{
this.lnknext = value;
}
}
#endregion
#region 末页
public System.Web.UI.WebControls.HyperLink Lnklast
{
get
{
return this.lnklast;
}
set
{
this.lnklast = value;
}
}
#endregion
#region 当前页
public System.Web.UI.WebControls.Label Pagenum
{
get
{
return this.pagenum;
}
set
{
this.pagenum = value;
}
}
#endregion
#region 共多少页
public System.Web.UI.WebControls.Label Pagecount
{
get
{
return this.pagecount;
}
set
{
this.pagecount = value;
}
}
#endregion
#region 将字符串分割成数组
/// <summary>
/// 将字符串分割成数组
/// </summary>
/// <param name="strSource"></param>
/// <param name="strSplit"></param>
/// <returns></returns>
public string[] StringSplit(string strSource, string strSplit)
{
string[] strtmp = new string[1];
int index = strSource.IndexOf(strSplit, 0);
if (index < 0)
{
strtmp[0] = strSource;
return strtmp;
}
else
{
strtmp[0] = strSource.Substring(0, index);
return StringSplit(strSource.Substring(index + strSplit.Length), strSplit, strtmp);
}
}
#endregion
#region 采用递归将字符串分割成数组
/// <summary>
/// 采用递归将字符串分割成数组
/// </summary>
/// <param name="strSource"></param>
/// <param name="strSplit"></param>
/// <param name="attachArray"></param>
/// <returns></returns>
private string[] StringSplit(string strSource, string strSplit, string[] attachArray)
{
string[] strtmp = new string[attachArray.Length + 1];
attachArray.CopyTo(strtmp, 0);
int index = strSource.IndexOf(strSplit, 0);
if (index < 0)
{
strtmp[attachArray.Length] = strSource;
return strtmp;
}
else
{
strtmp[attachArray.Length] = strSource.Substring(0, index);
return StringSplit(strSource.Substring(index + strSplit.Length), strSplit, strtmp);
}
}
#endregion
}
调用部分:
在aspx中增加lable等元素。
<asp:label id="currentpage" runat="server" CssClass="btn">当前页</asp:label>
<asp:label id="totalpage" runat="server" CssClass="btn">共多少页</asp:label>
<asp:hyperlink id="lnkfist" runat="server" CssClass="btn">首页</asp:hyperlink>|
<asp:hyperlink id="lnkprev" runat="server" CssClass="btn">前页</asp:hyperlink>|
<asp:hyperlink id="lnknext" runat="server" CssClass="btn">下页</asp:hyperlink>|
<asp:hyperlink id="lnklast" runat="server" CssClass="btn">尾页</asp:hyperlink>
在aspx.cs中增加调用代码。
protected void Page_Load(object sender, EventArgs e)
{
this.txtcontent.Text = dstSet.Tables[0].Rows[0]["nt1"].ToString();
getPager();
}
/// <summary>
/// 文章分页
/// </summary>
public void getPager()
{
ContentPager pager = new ContentPager();
pager.Lnknext = this.lnknext;
pager.Lnkprev = this.lnkprev;
pager.Lnklast = this.lnklast;
pager.Lnkfist = this.lnkfist;
pager.Pagenum = this.currentpage;
pager.Pagecount = this.totalpage;
pager.DisplayContent = this.txtcontent;
string query = "&id=" + Request.QueryString["id"].ToString();
pager.datapager(txtcontent.Text, query);
}