首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

请问长文章分页的有关问题

2012-01-20 
请教长文章分页的问题请教长文章分页的问题,应该怎么样来调用这个方法呢?如果直接使用SeparatePages(conte

请教长文章分页的问题
请教长文章分页的问题,
应该怎么样来调用这个方法呢?如果直接使用SeparatePages(content)就不行

public   Hashtable   SeparatePages(string   n_content,string   page)
          {
                //在此处放置初始化页的用户代码
                Hashtable   returnHash   =   new   Hashtable();
                int   start,   stops,   t,   stat,   pp,   pagecount,   pagesize,   articleid;
                string   pa,   articletxt,   articletext,   html;
                int   pig   =   0;

                //变量初始值
                stat   =   0;
                start   =   0;   //开始查询的字符串位置,初始为0
                stops   =   0;
                pagesize   =   3000;//定义每页至少显示字符串数
                pagecount   =   0;
                html   =   " ";
             
                //获得当前的页数
                pa   =   page;
                if   (pa   ==   " "   ||   pa   ==   null)
                {
                        pa   =   "1 ";
                }
                pp   =   Convert.ToInt32(pa);

                //获得内容
                articletxt   =   n_content;

                //判断页面的内容长度是否大于定义的每页至少显示字符串数
                if   (articletxt.Length   > =   pagesize)   //   如果大于字符串数,则我们可以分页显示
                {
                        t   =   articletxt.Length   /   pagesize;   //获得大致的总页数
                        for   (int   j   =   0;   j   <=   t;   j++)
                        {       //如果查询开始位置到查询的范围超出整个内容的长度,那么就不用寻找断点(分页点);反之,查找
                                if   (start   +   pagesize   <   articletxt.Length)
                                {
                                        stat   =   articletxt.ToLower().IndexOf( " </p> ",   start   +   pagesize);   //查找 </P> 分页点的位置


                                }
                                if   (stat   <=   0)//如果找不到
                                {

                                }
                                else
                                {
                                        stops   =   stat;   //分页点的位置也就作为这一页的终点位置

                                        if   (start   <   articletxt.Length)
                                        {
                                                if   ((articletxt.Length   -   start)   <   pagesize)
                                                {
                                                        if   (pig   ==   0)
                                                        {
                                                                pagecount   =   pagecount   +   1;
                                                        }
                                                        pig   =   1;
                                                }
                                                else
                                                {
                                                        pagecount   =   pagecount   +   1;


                                                }
                                        }
                                        if   (start   +   pagesize   > =   articletxt.Length)   //如果起始位置到查询的范围超出整个内容的长度,那么这一页的终点位置为内容的终点
                                        {
                                                stops   =   articletxt.Length;
                                        }
                                        if   (pp   ==   j   +   1)   //如果是当前,那么输出当前页的内容
                                        {
                                                articletext   =   articletxt.Substring(start,   stops   -   start);   //取内容的起始位置到终点位置这段字符串输出
                                                returnHash[ "label1 "]   =   articletext;
                                        }
                                        start   =   stat;   //将终点位置作为下一页的起始位置
                                }
                        }//   pagecount   =   pagecount   -   1;
                }
                else
                {
                        returnHash[ "label1 "]   =   n_content;
                }
                //分页部分(这里就简单多了)
                //定义分页代码变量
                if   (pagecount   >   1)   //当页数大于1的时候我们显示页数
                {        
                        if   (pp   -   1   >   0)   //显示上一页,方便浏览
                        {   html   =   html   +   " <a   href= 'View.aspx?ID= "+Convert.ToInt32(Request[ "ID "])+ "&page= "   +   (pp   -   1)   +   " '> [上一页] </a>   ";   }


                        else
                        {
                                if   (pp   ==   1)
                                {   html   =   html   +   "[ <font   color=#cccccc> 上一页 </font> ]   ";   }
                                else
                                {   html   =   html   +   " <a   href= 'View.aspx?ID= "+Convert.ToInt32(Request[ "ID "])+ "&page= "   +   (1)   +   " '> [上一页] </a>   ";   }
                        }
                        for   (int   i   =   1;   i   <=   pagecount;   i++)
                        {
                                if   (i   ==   pp)     //如果是当前页,加粗显示
                                {   html   =   html   +   " <b> [ "   +   i   +   "] </b>   ";   }
                                else
                                {   html   =   html   +   " <a   href= 'View.aspx?ID= "+Convert.ToInt32(Request[ "ID "])+ "&page= "   +   i   +   " '> [ "   +   i   +   "] </a>   ";   }
                        }
                        if   (pp   +   1   >   pagecount)     //显示下一页,方便浏览
                        {
                                if   (pp   ==   pagecount)
                                {   html   =   html   +   "[ <font   color=#cccccc> 下一页 </font> ]   ";   }
                                else
                                {   html   =   html   +   " <a   href= 'View.aspx?ID= "+Convert.ToInt32(Request[ "ID "])+ "&page= "   +   (pagecount)   +   " '> [下一页] </a> </p> ";   }


                        }
                        else
                        {
                                html   =   html   +   " <a   href= 'View.aspx?ID= "+Convert.ToInt32(Request[ "ID "])+ "&page= "   +   (pp   +   1)   +   " '> [下一页] </a> </p> ";
                        }
                }
                returnHash[ "label2 "]   =   html;
                return   returnHash;
          }

[解决办法]
你用SeparatePages(content)
参数不对
他有两个参数
[解决办法]
SeparatePages(content, " ")
[解决办法]
Hashtable myHash= SeparatePages(文章全文内容,当前页码);
string curText=myHash[ "label1 "];//当前页码显示的内容
string curPagePart=myHash[ "label2 "];//页码部分html

热点排行