源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 1090|回复: 30

[ASP编程] asp长文章用分页符来分页显示

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2008-11-20 23:14:56 | 显示全部楼层 |阅读模式
照正常的文章系统一路做下去,后台的文章添加,文章的检索,和文章的详细页,都是常规方式操作,这里不加描述,请参阅相关帖子。

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

只是在文章添加时,在你想让它分页的地方加上分页符:“[ page ]”(当然这个符号你可以随便用,比如:[ page ]、&&&、###、@@@……,只要它不会在文章要正常显示的地方出现就行了。)
我用了四个页面,输入页(index.asp)、输入完成页(add.asp)、文章列表页(view.asp)、文章内容页(text.asp),前三个都是不用处理的页面,看下面的介绍我想一般的小鸟就会做了,关键是最后一个text.asp,所有实现分页的代码都在这里。
第二步:来
在文章正文内容的动态数据部分做一些手脚,下面是代码和解释:
复制代码 代码如下:
'这里是处理分页的代码
'考滤保险起见,我们用replace函数在分页代码前后各加一个全角空格
MMText=replace(rs("contents"),"[ page ]"," [ page ] ")
MMfText=split(MMText,"[ page ]")
'用ubound函数取得要分的页数,注意下标值是从0开始的
contentNum=ubound(MMfText)
page=Clng(request("page"))
if page<1 then
page=1
end if
'为了看起来直观一些,我们把起始页设为1,那么总页数就要加上1
if page>contentNum+1 then
page=contentNum+1
end if
'换照上面从url中参数中取得的要显示的那面的那个变量,就循环显示一页
for i=page to page
response.write MMfText(i-1)
next
'列出分页
if cint(contentNum)>0 then
if page<>1 then
response.write "<a href='text.asp?id="&request("id")&"&page="&page-1&"'>[上一页]</a> "
end if
'记得下标值是从0开始,我们这里从1开始分页,总数要加1
for p=1 to contentNum+1
if page=p then
response.write "<a href='text.asp?id="&request("id")&"&page="&p&"'><font color=red>["&p&"]</font></a> "
else
response.write "<a href='text.asp?id="&request("id")&"&page="&p&"'>["&p&"]</a> "
end if
next
if page<>contentNum+1 then
response.write "<a href='text.asp?id="&request("id")&"&page="&page+1&"'>[下一页]</a> "
end if
end if


下面是其它网站的文章,大家也可以参考下。

长文章页用分页符来显示,想用ASP也实现这种功能,可发现只有根据字数进行分页的方法,但这种方法有一个BUG,就是如果你文章内容中如果有UBB代码,它很容易造成在[ code ][ /code ]之间进行分页,或者干脆就把[ code ]分解成了[co和de],这样文章显示就会出现错误。
以下几个步骤将能够完全实现。
第一步:
按照正常的文章系统一路做下去,后台的文章添加,文章的检索,和文章的详细页,都是常规方式操作,这里不加描述,请参阅相关帖子。只是在文章添加时,在你想让它分页的地方加上分页符:“

回复

使用道具 举报

0

主题

55

回帖

220

积分

中级会员

Rank: 3Rank: 3

积分
220
发表于 2008-11-20 23:15:48 | 显示全部楼层
”(当然这个符号你可以随便用,比如:[ page ]、&&&、###、@@@……,只要它不会在文章要正常显示的地方出现就行了。)
我用了四个页面,输入页(index.asp)、输入完成页(add.asp)、文章列表页(view.asp)、文章内容页(display.asp),前三个都是不用处理的页面,看下面的图片我想一般的小鸟就会做了,关键是最后一个displasy.asp,所有实现分页的代码都在这里。
第二步:
在文章正文内容的动态数据部分做一些手脚,下面是代码和解释:
复制代码 代码如下:
<%
'这里要处理接收到的分页参数,以此来进行显示第几页的内容
'下面这两句就是如果没有page这个参数传来就让变量pageNum取显示第一页的值:0
If Request("page")="" Then
pageNum=0
'否则就给变量赋值为传递来的page里的参数,来显示其他页
Else
pageNum=Request("page")
End if
%>
<%
'如果加了可选执行UBB代码,可以加上下面的代码
'rs("NoUBB")是数据库里关于禁用UBB的字段,0为禁用,1为执行
If rs("NoUBB")=0 then
'为避免和文章内容相连出现错误,用Replace函数把分页代码“
回复 支持 反对

使用道具 举报

0

主题

74

回帖

293

积分

中级会员

Rank: 3Rank: 3

积分
293
发表于 2008-11-20 23:16:44 | 显示全部楼层
”的前后各加一个全角的
'rs("content")是数据库里正文的字段,在这里加上UBB或者禁用UBB
Content=Replace((unHTML(rs("content"))),"
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

194

积分

注册会员

Rank: 2

积分
194
发表于 2008-11-20 23:17:22 | 显示全部楼层
"," 
回复 支持 反对

使用道具 举报

0

主题

65

回帖

257

积分

中级会员

Rank: 3Rank: 3

积分
257
发表于 2008-11-20 23:18:05 | 显示全部楼层
 ")
Elseif rs("NoUBB")=1 then
Content=Replace((ubb(rs("content"))),"
回复 支持 反对

使用道具 举报

0

主题

74

回帖

293

积分

中级会员

Rank: 3Rank: 3

积分
293
发表于 2008-11-20 23:18:44 | 显示全部楼层
"," 
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

186

积分

注册会员

Rank: 2

积分
186
发表于 2008-11-20 23:19:23 | 显示全部楼层
 ")
End if
%>
<%
'这里就是关键了
'我们用split函数将文章分段取出存入变量content
ContentStr=split(Content,"
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

194

积分

注册会员

Rank: 2

积分
194
发表于 2008-11-20 23:20:02 | 显示全部楼层
")
'按照刚才从URL参数中取得的要显示那面的那个变量,就循环显示一页
For i=pageNum to pageNum
%>
<!--这里将是文章正文内容-->
<%=ContentStr %>
<% Next %>
</td>
</tr>
<tr>
<td height="30" class="ClassName">本文共分
<%
'分页的地方,用ubound(ContentStr)取得文章一共分为几页,注意这里是从0开始,所以总页数需要加1
For p = 0 to ubound(ContentStr)
'链接还是本页面,只不过文章ID参数后面还要加上一个分页的参数:page
%>
<a href="display.asp?ID=<%=rsquest("ID")%>&page=<%=p%>" class=""><%=p+1%></a>
<% Next %>页

很简单吧,要是把注释都删除,才15行代码,不过还要加工一下,让它能有上一页、下一页和当前页突出的功能就完善了。
已测试过,除非文章里出现那个分页符,否则各种类型都不会出错,当然可以把
回复 支持 反对

使用道具 举报

0

主题

55

回帖

220

积分

中级会员

Rank: 3Rank: 3

积分
220
发表于 2008-11-20 23:20:38 | 显示全部楼层
的数量加大比如:
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

194

积分

注册会员

Rank: 2

积分
194
发表于 2008-11-20 23:21:51 | 显示全部楼层
,再六个“|”以下在文章出现都没事,但六个以上就会分页了,选择一个好的分页符就可以了

回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-21 19:56 , Processed in 0.078337 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表