自动识别并执行分页.自动分页部分现在设定为每5000个字符就分页;手动分页部分设定分页符为"|||".
主要思路是:在内容里搜索分页符,如果含有分页符就执行手动分页程序;如果没有分页符就执行自动分页.这样子设置是因为有时候比较懒,懒得都手动分页;而有时候自动分页可能会在效果页面中间拆分,那就糗了...所以做了这么一个页面.不过说好多CMS都有这个功能的...
怎么说都是自己做的,分享出来给大家,共同进步.如果有建议有问题请给我邮件:chire_8@163.com,谢谢大家的支持,你们的支持是我的动力~
<%
ID=Trim(Request.QueryString("ID"))
Sql="Select * From news_main Where ID="&ID
Set Rsl=Conn.Execute(Sql)
Content=rsl("text1")

'判断时候含分页符,下面是自动分页程序
if instr (Content,"|||") = 0 then
set dic=fAtPgnt(rsl("text1"),5000,request.queryString("apid"))
response.write dic("cnt")&"<br/>"
response.write dic("pgnt")&"<br/>"
set dic=nothing
else


'这里要处理接收到的分页参数,以此来进行显示第几页的内容
'下面这两句就是如果没有page这个参数传来就让变量pageNum取显示第一页的

值
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函数把分页代码“|||”的前后各

加一个全角的
'rs("content")是数据库里正文的字段,在这里加上UBB或者禁用UBB
Content=Replace((unHTML(rsl("text1"))),"|||"," ||| ")
Elseif rs("NoUBB")=1 then
Content=Replace((ubb(rsl("text1"))),"|||"," ||| ")
End if
'这里就是关键了
'我们用split函数将文章分段取出存入变量content
ContentStr=split(Content,"|||")
'按照刚才从URL参数中取得的要显示那面的那个变量,就循环显示一页
For i= pageNum to pageNum
%>
<!--这里将是文章正文内容-->
<%= ContentStr(i) %>
<% Next
'分页的地方,用ubound(ContentStr)取得文章一共分为几页,注意这里是从0

开始,所以总页数需要加1
For p = 0 to ubound(ContentStr)
'链接还是本页面,只不过文章ID参数后面还要加上一个分页的参数:page
%>
[<a href="look.asp?ID=<%=request("ID")%>&page=<%=p%>"><%=p+1%></a>]
<% Next %>
<%End If %>
<%
Rsq.Close
Set Rsq=Nothing
Rsl.Close
Set Rsl=Nothing
%>


<%
function fAtPgnt(aStr,pSize,rId)
''''''''''''''''''''''''''''''''''''''''''''''''''''''
'ASP 通用文章分页函数(非记录集分页), 返回多个结果, 字典实现 By

shawl.qiu
' http://blog.youkuaiyun.com/btbtd
'2006-09-04
'''''''''''''''''''''''''''
'输入参数说明:
'aStr 为要分页的字符串
'pSize 为每页大小数字
'rId 为 URL 参数 ID, 默认为 apid, 由函数里的 rName 变量定义
if isNumeric(pSize)=false or len(aStr)=0 then exit function
if isNull(rId) or rId="" or isNumeric(rId)=false then rId=1 '如

果分页查询ID为空则 ID为 1
dim aStrLen '取文章总长度的变量
aStrLen=len(aStr)
'智能URL字符串替换
dim rqs, url, rName
rqs=request.ServerVariables("QUERY_STRING")
rName="apid"
if rqs="" then
url="?"&rName&"="
elseif instr(rqs,rName)<>0 then
url="?"&replace(rqs,rName&"="&rId,"")&rName&"="
else
url="?"&replace(rqs,"&"&rName&"="&rId,"")&"&"&rName&"="
end if
dim tPg '定义总页数变量
tPg=int(aStrLen/-pSize)*-1
if rId<1 then rId=1 '如果分页查询ID小于1, 则为1
if cLng(rId)>cLng(tPg) then rId=tPg '如果分页查询ID大于总页数,

则为总页数
dim cPg '定义取当前页字符起始位置变量
if rId=1 then cPg=1 else cPg=pSize*(rId-1)+1 '读取文章的起始位

置

dim dic '字义字典变量
set dic = createObject("scripting.dictionary")
if aStrLen<=pSize then '如果分页大小大于正文大小时, 执行以

下操作
dic.add "pgnt", "" '增加页面连接到字典
'增加统计信息到字典
dic.add "info", formatNumber(pSize,0)&"字/页

"&rid&"/"&tPg&"页 共"&_
formatNumber(aStrLen,0)&"字"
dic.add "cnt", mid(aStr,1) '增加内容到字典
set fAtPgnt=dic
set dic=nothing
exit function
end if
dim i, temp, temp1
for i=1 to tPg
'如果当前查询ID=i, 则加入高亮CSS类
if strComp(rId,i,1)=0 then temp1=" class=""hl"""
temp=temp&"<a href="""&url&i&""""&temp1&">["&i&"]</a> "
next
dic.add "pgnt", temp '增加页面连接到字典
'增加统计信息到字典
dic.add "info", formatNumber(pSize,0)&"字/页

"&rid&"/"&tPg&"页 共"&_
formatNumber(aStrLen,0)&"字"
dic.add "cnt", mid(aStr,cPg,pSize) '增加文章内容到字典
set fAtPgnt=dic
set dic=nothing
end function
%>
