文章分页类库 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); }