长文章分页,手动输入分页符

本文介绍了一个简单实用的文章分页类库实现方法,通过该类库可以轻松地为长篇文章添加分页功能,提高用户体验。该方法利用ASP.NET中的控件进行页面跳转,并从配置文件中读取分页符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值