我用的是freetextbox,如果文章过长我会考虑分页,我写的分页过程如下:
#region 显示文章内容
private void ContentShow(string Content1,string DefaultPic,int MaxLength,int MaxCharPerPage)
{
Response.Write(Server.HtmlEncode(Content1.Substring(0,MaxCharPerPage)));
if(MaxLength%MaxCharPerPage!=0)
{
PageCount = MaxLength/MaxCharPerPage+1;
}
else
{
PageCount = MaxLength/MaxCharPerPage;
}
if(Request.QueryString["Page"]==null)
{
Content.Text = (DefaultPic.Trim()==""?"":"<img src=../News/" + DefaultPic.Replace("SmallImage","BigImage") + " width=500><br>") + Content1.Substring(0,MaxCharPerPage);
}
else
{
CurrentPage = int.Parse(Request.QueryString["Page"]);
if(CurrentPage!=PageCount)
{
Content.Text =Content1.Substring(MaxCharPerPage*(CurrentPage-1),MaxCharPerPage*CurrentPage);
}
else
{
Content.Text =Content1.Substring(MaxCharPerPage*(CurrentPage-1),MaxLength-1);
} }
}
#endregion #region 文章进行分页
private void NewPageShow(int MaxLength,int MaxCharPerPage)
{
if(MaxLength%MaxCharPerPage!=0)
{
PageCount = MaxLength/MaxCharPerPage+1;
}
else
{
PageCount = MaxLength/MaxCharPerPage;
}
if(Request.QueryString["Page"]!=null)
{
CurrentPage = int.Parse(Request.QueryString["Page"]);
}
else
{
CurrentPage = 1;
}
PageShow1.Text="共有" + PageCount.ToString() + "页,当前第" + CurrentPage.ToString() + "页[&nbsp;";
for(int i=0;i<=PageCount-1;i++)
{
if(CurrentPage!=i+1)
{
PageShow1.Text +="<a href = News_Show.aspx?BoardID=" + Request.QueryString["BoardID"] + "&NoteID=" + 
Request.QueryString["NoteID"] + "&Page=" +(i+1).ToString() + ">" + (i+1).ToString() + "</a>&nbsp;";
}
else
{
PageShow1.Text +="<font color=red>" + (i+1).ToString() + "</font>&nbsp;"; }
}
PageShow1.Text += "]";
}
#endregion
============================
好象可以分页,不过麻烦就在于保存到数据库的freetextbox的内容含有html代码,这下就麻烦了,
如果我里面有一个<table><tr><td></td></table>
我分页刚好分到</td>,那么我的页面布局不就乱套了吗?,请问你们平常是怎么分页,高手们请指教!!

解决方案 »

  1.   

    你这样是很麻烦的,再怎么处理也不会多美观的,建议在长内容时,让用户自己插入特殊符号,在前台输出时,根据特殊符号把内容分成数组,然后把在根据数组长度把输出分页的值,在页面后带上传递值,前台页面家载时,就可以根据加载的值来判断是否要输出那个段落了
    如文章分成3段,数组长度是3,你可以输出news.aspx?len_id=3,news.apsx?len_id=2,等,在
    news.aspx里先把内容取出,分成数组,然后根据传递的len_id值来判断输出哪个段落,明白没,我刚好也在做这样一个项目,刚做完,效果还可以
      

  2.   

    请抽个空学一点算法,可以把内容分成N段,然后用经典的匹配算法解析全文自动在头、尾将缺少的起始结束符补完整再Response出来
      

  3.   

    补充一下,输入内容时要禁止用户自己手写HTML免得代码有问题,本人最近刚好在研究做.NET的WEB编辑器的控件,有没有兴趣?。