huangyong 发表于 2007-10-15 21:26

[转载]ASP实例讲解:用分页符实现长文章分页显示

<P>长文章页用分页符来显示,想用ASP也实现这种功能,可发现只有根据字数进行分页的方法,但这种方法有一个BUG,就是如果你文章内容中如果有UBB或HTML代码,它很容易造成在[code][/code]之间进行分页,或者干脆就把[code]分解成了[co和de],这样文章显示就会出现错误。 <br>
<P>
<P>以下几个步骤将能够完全实现。<br>
<P>
<P>第一步: <br>  按照正常的文章系统一路做下去,后台的文章添加,文章的检索,和文章的详细页,都是常规方式操作,这里不加描述,请参阅相关帖子。只是在文章添加时,在你想让它分页的地方加上分页符:“|||” <br>
<P>
<P>(当然这个符号你可以随便用,比如:[page]、&amp;&amp;&amp;、###、@@@……,只要它不会在文章要正常显示的地方出现就行了。)<br>
<P>
<P>我用了四个页面,输入页(index.asp)、输入完成页(add.asp)、文章列表页(view.asp)、文章内容页(display.asp),前三个都是不用处理的页面,看下面的图片我想一般的小鸟就会做了,关键是最后一个displasy.asp,所有实现分页的代码都在这里。 <br>
<DIV class=Fpa819>Www_Chinaz_com</DIV>
<P>
<P>第二步: <br>在文章正文内容的动态数据部分做一些手脚,下面是代码和解释:<br>
<P>
<TABLE cellSpacing=0 cellPadding=6 width="95%" align=center border=0>

<TR>
<TD bgColor=#fdfddf><FONT color=#ff0000>以下为引用的内容:</FONT><br>&lt;% <br>'这里要处理接收到的分页参数,以此来进行显示第几页的内容<br>'下面这两句就是如果没有page这个参数传来就让变量pageNum取显示第一页的值:0<br>If Request("page")="" Then<br>pageNum=0<br>'否则就给变量赋值为传递来的page里的参数,来显示其他页<br>Else<br>pageNum=Request("page") <br>End if<br>%&gt; &lt;% '如果加了可选执行UBB代码,可以加上下面的代码<br>'rs("NoUBB")是数据库里关于禁用UBB的字段,0为禁用,1为执行<br>If rs("NoUBB")=0 then<br>'为避免和文章内容相连出现错误,用Replace函数把分页代码“|||”的前后各加一个全角的<br>'rs("content")是数据库里正文的字段,在这里加上UBB或者禁用UBB 站.长.站 <br>Content=Replace((unHTML(rs("content"))),"|||"," ||| ")<br>Elseif rs("NoUBB")=1 then<br>Content=Replace((ubb(rs("content"))),"|||"," ||| ")<br>End if<br>%&gt;<br>&lt;% '这里就是关键了<br>'我们用split函数将文章分段取出存入变量content<br>ContentStr=split(Content,"|||")<br>'按照刚才从URL参数中取得的要显示那页的那个变量,就循环显示一页<br>For i=pageNum to pageNum<br>%&gt;<br>&lt;!--这里将是文章正文内容--&gt;<br>&lt;%=ContentStr %&gt;<br>&lt;% Next %&gt;<br>&lt;/td&gt;<br>&lt;/tr&gt;<br>&lt;tr&gt;<br>&lt;td height="30" class="ClassName"&gt;本文共分<br>&lt;%<br>'分页的地方,用ubound(ContentStr)取得文章一共分为几页,注意这里是从0开始,所以总页数需要加1<br>For p = 0 to ubound(ContentStr)<br>'链接还是本页面,只不过文章ID参数后面还要加上一个分页的参数:page %&gt; <br>&lt;a href="display.asp?ID=&lt;%=rsquest("ID")%&gt;&amp;page=&lt;%=p%&gt;" class=""&gt;&lt;%=p+1%&gt;&lt;/a&gt; &lt;% Next %&gt;页</TD></TR></TABLE></P>
<P>  很简单吧,要是把注释都删除,才15行代码,不过还要加工一下,让它能有上一页、下一页和当前页突出的功能就完善了。 <FONT color=#f5fafe>Www@Chinaz@com</FONT> </P>
<P>  已测试过,除非文章里出现那个分页符,否则各种类型都不会出错,当然可以把|||的数量加大比如:||||||,再六个“|”以下在文章出现都没事,但六个以上就会分页了,选择一个好的分页符就可以了。</P><br>转载于:中国站长站
[align=right][color=#000066][此贴子已经被作者于2007-10-15 21:28:03编辑过][/color][/align]

dushui265 发表于 2007-10-25 11:20

支持了![em10]

页: [1]

编程论坛