用户提交的一篇文章,用FCKeditor保存在数据库里面,现在需求是,显示时如果内容过长,则分页,怎么实现?
文章内容含有HTML代码,也可能会有图片在里面
根据什么来翻?字数?行数?高度?(求[详细]思路)
比如根据什么来翻,多余的字符怎么保存处理,上一页下一页怎么链接,用什么接收怎么显示...
==============================================================================
标注:文章内容长度不一,是用户提交,所以没有手动添加分页符在里面。

解决方案 »

  1.   

    这个你要在添加文章的时候 人工手动添加一个分页符号
    或者是 在FCKeditor 加一个分页按钮这个分页符号我用的是“<%>”如果用Split取出成数组 
    分页显示
      

  2.   

    说了啊。是用户添加信息,不是后台添加信息,不可能给每个用户的信息都去手动添加分页符号吧。
    FCKeditor分页按钮?怎么用说清楚点撒。。
      

  3.   

    public class t3 : System.Web.UI.Page

    private string str;//字符
    private int strl;//字符总长度
    private int pagesize;//每页显示的字符数
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面 
    str="1234567891234567898522555";
    pagesize=3;
    strl=str.Length;
    Response.Write(strl);
    substr();
    }private void substr()
    {
    int ct=Int32.Parse(Request.QueryString["page"]);
    if(strl==(strl/pagesize)*pagesize)//看看页面的总记录是否能被每页的记录数整除
    {
    for(int i=1;i<=strl/pagesize;i++)
    {
    Response.Write("页:"+(i)+"");
    }
    string s=str.Substring(pagesize*ct-pagesize,pagesize);
    Response.Write(s);
    }
    else if(ct*pagesize>strl)//在不被整除的情况下,最后一页的设置,如字符长13,每页3,则处理最后那一页的显示
    {
    for(int i=1;i<=(strl/pagesize)+1;i++)
    {
    Response.Write("页:"+(i)+"");
    }
    string s=str.Substring((ct-1)*pagesize,strl-(ct-1)*pagesize);
    Response.Write(s);}
    else //在不被整除的情况下其他页面的显示设置
    {
    for(int i=1;i<=strl/pagesize+1;i++)
    {
    Response.Write("页:"+(i)+"");
    }
    string s=str.Substring(pagesize*ct-pagesize,pagesize);
    Response.Write(s);
    }
    }
    }
      

  4.   

    就算是用户 也要加分页符号的你要给出文字提示 如果要分页 就要点击分页按钮 添加分页符号
    你可以在FCKeditor中加一个分页按钮
    用js实现在内容中加分页符号
      

  5.   

    http://www.webdiyer.com/AspNetPager/demo/basic/default.aspx
      

  6.   

    找最外层标签,然后判断这段标签的内容是否大于默认一页的大小,如果是,就新建一页,不是就继续找下一个标签。分页连接很简单  info_1_p1.html info_1_p2.html info_1_p3.html
    若不是生成静态的,那就慢了。
      

  7.   

    现在睡得迷迷糊糊的。。谢谢各位回答。
    6楼的能实现带html代码的文本分页吗?不要等下把html代码给切了。
    13楼我是文本分页,你给我发数据分页的干嘛。
    16楼的能说再详细点吗?没接触过真的不好理解。最外层标签是什么?怎么判断?有没有哪边可以参考下?
      

  8.   

    爱咋咋地,那种方法,不考虑到如果有<html>代码标签的时候,会出错的.最好的处理方法,是让客户自定义分页的标签如 $Page$
      

  9.   

    wo xian qu  shi  shi kan ``
      

  10.   

    在要显示文章的页面加两个label,Article和SeparatenewsID = Request.QueryString["NewID"]; //文章ID
    int page = 1;
    if (Request.QueryString["page"] != null)
    {
       page = int.Parse(Request.QueryString["page"].ToString());
    }
    string content = myNewRow["Article"].ToString();
         ArrayList arrList = new ArrayList();    
          string pageString = "News.aspx?NewsID="+newsID+"&page="+page;    //分页跳转
         if (content.IndexOf("<p>[nextpage]</p>") > 1)  //分页符<p>[nextpage]</p>
            {
               String[] tempList = content.Split(new String[] { "<p>[nextpage]</p>" }, StringSplitOptions.RemoveEmptyEntries);
               for (int i = 0; i < tempList.Length; i++)
                  {
                    arrList.Add(tempList[i]);
                  }
                 }
               else
               {
                 arrList.Add(content);
               }
               if (page < 1 || page > arrList.Count)
               {
                  page = 1;
               }
               if (arrList.Count == 1)
               {
                   newArticle.Text = (string)arrList[0];
                   Separate.Text = "";
               }
               else
               {
                  if (page <= arrList.Count)
                  {
                      newArticle.Text = (string)arrList[page - 1];
                  }
                  else
                  {
                     newArticle.Text = (string)arrList[0];
                  }
                  Separate.Text = pageList.PageInfo(arrList.Count, 1, page, pageString);
               }
    pageList代码段public class PageList
        {
            #region 文章分页
            /// <summary>
            /// 文章分页
            /// </summary>
            /// <param name="count">新闻总页数</param>
            /// <param name="pageList">每页显示几条新闻</param>
            /// <param name="nowPage">当前是第几页</param>
            /// <param name="pageStr">跳转页面</param>
            /// <returns></returns>
            public string PageInfo(int count, int pageList, int nowPage, string pageStr)
            {
                int pageCount = 1;
                //string temp = "<font color='red'>共有" + count + "条新闻&nbsp;&nbsp;</font>";
                string temp = "";
                if (count > 0)
                {
                  string firstPage = "";//首页
                    string lastPage = "";//上一页
                    string nextPage = "";//下一页
                    string endPage = "";//未页
                    pageCount = count / pageList;
                  string selectStr = "跳转:<select name='PageSelect' onchange='window.location.href=value' id='newPageSelect'>";//下拉单
                    if ((count % pageList) > 0)
                    {
                        pageCount++;
                    }
                    for (int i = 1; i <= pageCount; i++)
                    {
                        if (i == nowPage)
                        {
                            selectStr += "<option selected='selected' value='" + pageStr + "page=" + i + "'>" + i + "</option>";
                        }
                        else
                        {
                            selectStr += "<option value='" + pageStr + "page=" + i + "'>" + i + "</option>";
                        }
                    }
                    selectStr += "</select>";
                    if (pageCount == 1)
                    {
                        firstPage = "<font color='#cccccc'>首页</font>";
                        lastPage = "<font color='#cccccc'>上页</font>";
                        nextPage = "<font color='#cccccc'>下页</font>";
                        endPage = "<font color='#cccccc'>尾页</font>";
                    }
                    else
                    {
                        if (nowPage == 1)
                        {
                            firstPage = "<font color='#cccccc'>首页</font>";
                            lastPage = "<font color='#cccccc'>上页</font>";
                            nextPage = "<a class='rlk' href='" + pageStr + "page=" + (nowPage + 1) + "'>下页</a>";
                            endPage = "<a class='rlk' href='" + pageStr + "page=" + pageCount + "'>尾页</a>";
                        }
                        else if (nowPage == pageCount)
                        {
                            firstPage = "<a class='rlk' href='" + pageStr + "page=1'>首页</a>";
                            lastPage = "<a class='rlk' href='" + pageStr + "page=" + (pageCount - 1) + "'>上页</a>";
                            nextPage = "<font color='#cccccc'>下页</font>";
                            endPage = "<font color='#cccccc'>尾页</font>";
                        }
                        else
                        {
                            nextPage = "<a class='rlk' href='" + pageStr + "page=" + (nowPage + 1) + "'>下页</a>";
                            lastPage = "<a class='rlk' href='" + pageStr + "page=" + (nowPage - 1) + "'>上页</a>";
                            firstPage = "<a class='rlk' href='" + pageStr + "page=1'>首页</a>";
                            endPage = "<a class='rlk' href='" + pageStr + "page=" + pageCount + "'>尾页</a>";
                        }
                    }
                    temp += "&nbsp;&nbsp;" + firstPage + "&nbsp;&nbsp;" + lastPage + "&nbsp;&nbsp;" + nextPage + "&nbsp;&nbsp;" + endPage + "&nbsp;&nbsp;" + selectStr;
                }
                else
                {
                    temp = "";
                }
                return temp;
            }
            #endregion
        }
    你试着根据你的要求改一改吧