当前位置:首页 > ASP教程 > 应用技巧

asp长文章用分页符来分页显示

需要注意的是 [ page ]需要删除中间的空格,因为与硕编程的后台分页重复,所以加了空格处理。

只是在文章添加时,在你想让它分页的地方加上分页符:“[ page ]”(当然这个符号你可以随便用,比如:[ page ]、&&&、###、

……,只要它不会在文章要正常显示的地方出现就行了。) <br>我用了四个页面,输入页(index.asp)、输入完成页(add.asp)、文章列表页(view.asp)、文章内容页(text.asp),前三个都是不用处理的页面,看下面的介绍我想一般的小鸟就会做了,关键是最后一个text.asp,所有实现分页的代码都在这里。 <br>第二步:来 <br>在文章正文内容的动态数据部分做一些手脚,下面是代码和解释: <br>
复制代码 代码如下:
<br>'这里是处理分页的代码 <br>'考滤保险起见,我们用replace函数在分页代码前后各加一个全角空格 <br>mmtext=replace(rs("contents"),"[ page ]"," [ page ] ") <br>mmftext=split(mmtext,"[ page ]") <br>'用ubound函数取得要分的页数,注意下标值是从0开始的 <br>contentnum=ubound(mmftext) <br>page=clng(request("page")) <br>if page<1 then <br>page=1 <br>end if <br>'为了看起来直观一些,我们把起始页设为1,那么总页数就要加上1 <br>if page>contentnum+1 then <br>page=contentnum+1 <br>end if <br>'换照上面从url中参数中取得的要显示的那面的那个变量,就循环显示一页 <br>for i=page to page <br>response.write mmftext(i-1) <br>next <br>'列出分页 <br>if cint(contentnum)>0 then <br>if page<>1 then <br>response.write "<a href='text.asp?id="&request("id")&"&page="&page-1&"'>[上一页]</a> " <br>end if <br>'记得下标值是从0开始,我们这里从1开始分页,总数要加1 <br>for p=1 to contentnum+1 <br>if page=p then <br>response.write "<a href='text.asp?id="&request("id")&"&page="&p&"'><font color=red>["&p&"]</font></a> " <br>else <br>response.write "<a href='text.asp?id="&request("id")&"&page="&p&"'>["&p&"]</a> " <br>end if <br>next <br>if page<>contentnum+1 then <br>response.write "<a href='text.asp?id="&request("id")&"&page="&page+1&"'>[下一页]</a> " <br>end if <br>end if <br>
<br><br>下面是其它网站的文章,大家也可以参考下。<br><br>长文章页用分页符来显示,想用asp也实现这种功能,可发现只有根据字数进行分页的方法,但这种方法有一个bug,就是如果你文章内容中如果有ubb代码,它很容易造成在[ code ][ /code ]之间进行分页,或者干脆就把[ code ]分解成了[co和de],这样文章显示就会出现错误。 <br>以下几个步骤将能够完全实现。 <br>第一步: <br>按照正常的文章系统一路做下去,后台的文章添加,文章的检索,和文章的详细页,都是常规方式操作,这里不加描述,请参阅相关帖子。只是在文章添加时,在你想让它分页的地方加上分页符:“|||”(当然这个符号你可以随便用,比如:[ page ]、&&&、###、
……,只要它不会在文章要正常显示的地方出现就行了。) <br>我用了四个页面,输入页(index.asp)、输入完成页(add.asp)、文章列表页(view.asp)、文章内容页(display.asp),前三个都是不用处理的页面,看下面的图片我想一般的小鸟就会做了,关键是最后一个displasy.asp,所有实现分页的代码都在这里。 <br>第二步: <br>在文章正文内容的动态数据部分做一些手脚,下面是代码和解释: <br>
复制代码 代码如下:
<br><% <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>%> <br><% <br>'如果加了可选执行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>%> <br><% <br>'这里就是关键了 <br>'我们用split函数将文章分段取出存入变量content <br>contentstr=split(content,"|||") <br>'按照刚才从url参数中取得的要显示那面的那个变量,就循环显示一页 <br>for i=pagenum to pagenum <br>%> <br><!--这里将是文章正文内容--> <br><%=contentstr %> <br><% next %> <br></td> <br></tr> <br><tr> <br><td height="30" class="classname">本文共分 <br><% <br>'分页的地方,用ubound(contentstr)取得文章一共分为几页,注意这里是从0开始,所以总页数需要加1 <br>for p = 0 to ubound(contentstr) <br>'链接还是本页面,只不过文章id参数后面还要加上一个分页的参数:page <br>%> <br><a href="display.asp?id=<%=rsquest("id")%>&page=<%=p%>" class=""><%=p+1%></a> <br><% next %>页 <br>
<br>很简单吧,要是把注释都删除,才15行代码,不过还要加工一下,让它能有上一页、下一页和当前页突出的功能就完善了。 <br>已测试过,除非文章里出现那个分页符,否则各种类型都不会出错,当然可以把|||的数量加大比如:||||||,再六个“|”以下在文章出现都没事,但六个以上就会分页了,选择一个好的分页符就可以了



【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!