文章自动公页

来源:互联网 发布:佛山市发发鱼网站源码 编辑:程序博客网 时间:2024/06/11 04:23

        public static string Pagination(string articleid,string strcontent, int ContentLen)
        {

            //定义变量  
            int i, BeginPoint, EndPoint, pages, Breakpoint, CurrentPage, pagecount, pagesize;
            string pa, articletext = "", contenttext, html = "";
            //int BeginPoint,EndPoint;
            //变量初始值  
            Breakpoint = 0;

            BeginPoint = 0;//开始查询的字符串位置,初始为0  
            EndPoint = 0;
            pagesize = ContentLen;//定义每页至少显示字符串数  
            pagecount = 0;

            //获得当前的页数  
         
            if (System.Web.HttpContext.Current.Request.Params["page"] == "" || System.Web.HttpContext.Current.Request.Params["page"] == null)
            { CurrentPage = 1; }
            else
            {

                CurrentPage = Convert.ToInt32(System.Web.HttpContext.Current.Request.Params["page"]);
            }

 

            //获得内容  
            contenttext = strcontent;

            //判断页面的内容长度是否大于定义的每页至少显示字符串数  
            if (contenttext.Length >= pagesize)//如果大于字符串数,则我们可以分页显示  
            {
                pages = contenttext.Length / pagesize;//获得大致的总页数  
                //根据目前获得的页数循环  
                for (i = 0; i <= pages; i++)
                {
                    //如果查询开始位置到查询的范围超出整个内容的长度,那么就不用寻找断点(分页点);反之,查找  
                    if (BeginPoint + pagesize < contenttext.Length)
                    {
                        Breakpoint = contenttext.IndexOf("<br />", BeginPoint + pagesize);//查找<br />分页点的位置
                        if (Breakpoint <= 0)//如果找不到  
                            Breakpoint = contenttext.IndexOf("<BR />", BeginPoint + pagesize);//查找<BR />分页点的位置;这里您可以自己设置分页点的判断  
                        if (Breakpoint <= 0)//如果找不到  
                            Breakpoint = contenttext.IndexOf("</P>", BeginPoint + pagesize);//查找</p>分页点的位置;这里您可以自己设置分页点的判断  
                        if (Breakpoint <= 0)//如果找不到  
                            Breakpoint = contenttext.IndexOf("</p>", BeginPoint + pagesize);//查找</p>分页点的位置;这里您可以自己设置分页点的判断  
                    }
                    if (Breakpoint <= 0)//如果找不到分页点,说明不能分页,也就不需要做其他的劳动了;否则,就进行分页  
                        articletext = contenttext;//将结果付给要导出的变量  
                    else
                    {
                        EndPoint = Breakpoint;//分页点的位置也就作为这一页的终点位置  
                        if (BeginPoint + pagesize >= contenttext.Length)//如果起始位置到查询的范围超出整个内容的长度,那么这一页的终点位置为内容的终点  
                            EndPoint = contenttext.Length;
                        if (CurrentPage == i + 1)//如果是当前,那么输出当前页的内容  
                            articletext = contenttext.Substring(BeginPoint, EndPoint - BeginPoint);//取内容的起始位置到终点位置这段字符串输出  
                        BeginPoint = Breakpoint;//将终点位置作为下一页的起始位置  
                        pagecount++;//获得实际页总数  
                    }
                }
            }
            else
            { articletext = contenttext; }
            if (pagecount > 1)
            {
                articletext += "<p>";
                for (i = 1; i <= pagecount; i++)
                {
                    if (i == CurrentPage)
                        articletext += "<b>[" + i + "]</b> ";
                    else
                        articletext += "<a href='?id=" + articleid + "&page=" + i + "'>[" + i + "]</a>";
                }

            }
            return articletext;

        }
        public static StringBuilder AutoPagination(string articleid, string strcontent, int ContentLen)
        {

            //定义变量  
            int i, BeginPoint, EndPoint, pages, Breakpoint, CurrentPage, pagecount, pagesize;
            string pa,  contenttext, html = "";
            StringBuilder articletext = new StringBuilder();
            //int BeginPoint,EndPoint;
            //变量初始值  
            Breakpoint = 0;

            BeginPoint = 0;//开始查询的字符串位置,初始为0  
            EndPoint = 0;
            pagesize = ContentLen;//定义每页至少显示字符串数  
            pagecount = 0;

            //获得当前的页数  

            if (System.Web.HttpContext.Current.Request.Params["page"] == "" || System.Web.HttpContext.Current.Request.Params["page"] == null)
            { CurrentPage = 1; }
            else
            {

                CurrentPage = Convert.ToInt32(System.Web.HttpContext.Current.Request.Params["page"]);
            }

 

            //获得内容  
            contenttext = strcontent;

            //判断页面的内容长度是否大于定义的每页至少显示字符串数  
            if (contenttext.Length >= pagesize)//如果大于字符串数,则我们可以分页显示  
            {
                pages = contenttext.Length / pagesize;//获得大致的总页数  
                //根据目前获得的页数循环  
                for (i = 0; i <= pages; i++)
                {
                    //如果查询开始位置到查询的范围超出整个内容的长度,那么就不用寻找断点(分页点);反之,查找  
                    if (BeginPoint + pagesize < contenttext.Length)
                    {
                        Breakpoint = contenttext.IndexOf("<br />", BeginPoint + pagesize);//查找<br />分页点的位置
                        if (Breakpoint <= 0)//如果找不到  
                            Breakpoint = contenttext.IndexOf("<BR />", BeginPoint + pagesize);//查找<BR />分页点的位置;这里您可以自己设置分页点的判断  
                        if (Breakpoint <= 0)//如果找不到  
                            Breakpoint = contenttext.IndexOf("</P>", BeginPoint + pagesize);//查找</p>分页点的位置;这里您可以自己设置分页点的判断  
                        if (Breakpoint <= 0)//如果找不到  
                            Breakpoint = contenttext.IndexOf("</p>", BeginPoint + pagesize);//查找</p>分页点的位置;这里您可以自己设置分页点的判断  
                    }
                    if (Breakpoint <= 0)//如果找不到分页点,说明不能分页,也就不需要做其他的劳动了;否则,就进行分页  
                    {
                        articletext.Remove(0, articletext.Length);
                        articletext.Append(contenttext);
                    }//将结果付给要导出的变量   
                    else
                    {
                        EndPoint = Breakpoint;//分页点的位置也就作为这一页的终点位置  
                        if (BeginPoint + pagesize >= contenttext.Length)//如果起始位置到查询的范围超出整个内容的长度,那么这一页的终点位置为内容的终点  
                            EndPoint = contenttext.Length;
                        if (CurrentPage == i + 1)//如果是当前,那么输出当前页的内容  
                        {
                            articletext.Remove(0, articletext.Length);
                            articletext.Append(contenttext.Substring(BeginPoint, EndPoint - BeginPoint));
                        }//取内容的起始位置到终点位置这段字符串输出    
                        BeginPoint = Breakpoint;//将终点位置作为下一页的起始位置  
                        pagecount++;//获得实际页总数  
                    }
                }
            }
            else
            { articletext.Append(contenttext); }
            if (pagecount > 1)
            {
                articletext.Append("<p>")  ;
                for (i = 1; i <= pagecount; i++)
                {
                    if (i == CurrentPage)
                        articletext.Append("<b>[" + i + "]</b> ");
                    else
                        articletext.Append("<a href='?id=" + articleid + "&page=" + i + "'>[" + i + "]</a>");
                }

            }
            return articletext;

        }

原创粉丝点击