参考:http://developer.51cto.com/art/200908/143516.htm 类文件: using System; using System.Data; using System.Configuration; using System.Collections; using System.ComponentModel; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Web.SessionState; /// <summary> /// ContentPager 的摘要说明 /// </summary> 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: 在此处添加构造函数逻辑 // } public void datapager(string content, string query) { string PagerSplit = "<div style=\"page-break-after: always\"><span style=\"display: none\"> </span></div>";//fckeditor自带分页符 string[] contentArray = StringSplit(content, PagerSplit); int PageCount = contentArray.Length; this.pagecount.Text = "共" + PageCount.ToString() + "页"; 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 = "第" + CurPage.ToString() + "页"; //下一页 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 System.Web.UI.WebControls.HyperLink DisplayContent public System.Web.UI.WebControls.Label DisplayContent { get { return this.DisplayContent; } set { this.displaycontent = value; } } #endregion #region System.Web.UI.WebControls.HyperLink Lnkprev public System.Web.UI.WebControls.HyperLink Lnkprev { get { return this.lnkprev; } set { this.lnkprev = value; } } #endregion #region System.Web.UI.WebControls.HyperLink Lnknext public System.Web.UI.WebControls.HyperLink Lnknext { get { return this.lnknext; } set { this.lnknext = value; } } #endregion #region System.Web.UI.WebControls.HyperLink Lnkfist public System.Web.UI.WebControls.HyperLink Lnkfist { get { return this.lnkfist; } set { this.lnkfist = value; } } #endregion #region System.Web.UI.WebControls.HyperLink Lnklast public System.Web.UI.WebControls.HyperLink Lnklast { get { return this.lnklast; } set { this.lnklast = value; } } #endregion #region System.Web.UI.WebControls.Label Pagenum public System.Web.UI.WebControls.Label Pagenum { get { return this.pagenum; } set { this.pagenum = value; } } #endregion #region System.Web.UI.WebControls.Label Pagecount public System.Web.UI.WebControls.Label Pagecount { get { return this.pagecount; } set { this.pagecount = value; } } #endregion #region 将字符串分割成数组 /// <summary> /// 将字符串分割成数组 /// <summary> /// <param name="strSource"> /// <param name="strSplit"> /// <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> /// 采用递归将字符串分割成数组 /// <param name="strSource"> /// <param name="strSplit"> /// <param name="attachArray"> /// <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: <asp:Label ID="content" runat="server"></asp:Label> <div id="divPage" align="center"> <asp:Label ID="currentpage" runat="server">当前页</asp:Label> <asp:Label ID="totalpage" runat="server">Label</asp:Label> <asp:HyperLink ID="lnkfist" runat="server">首页</asp:HyperLink>| <asp:HyperLink ID="lnkprev" runat="server">前页</asp:HyperLink>| <asp:HyperLink ID="lnknext" runat="server">下页</asp:HyperLink>| <asp:HyperLink ID="lnklast" runat="server">尾页</asp:HyperLink> </div> 后台aspx.cs: string cont = dt.Rows[0]["Contents"].ToString();//分页内容 //文章分页,关键部分 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.content; string query = "&id=" + Convert.ToInt32(Request.QueryString["id"]);//本篇文章id值 pager.datapager(cont, query);