ASP 长篇文章分页怎么实现!!!

2024-12-28 21:28:01
推荐回答(2个)
回答1:

先把这个写到页面里:

<%
Const ShowContentByPage="Yes" '文章内容是否分页显示
Const MaxPerPage_Content=15000 '每页显示大约字符数
sub AutoShow()
dim artpageid,strContent,CurrentPage
dim ContentLen,MaxPerPage,pages,i,lngBound
dim BeginPoint,EndPoint
artpageid=request("id")
strContent=rs1("Article_Content")
ContentLen=len(strContent)
CurrentPage=trim(request("page"))
if ShowContentByPage="No" or ContentLen<=MaxPerPage_Content then
response.write strContent
if ShowContentByPage="Yes" then
response.write "

[1]

"
end if
else
if CurrentPage="" then
CurrentPage=1
else
CurrentPage=Cint(CurrentPage)
end if
pages=ContentLen\MaxPerPage_Content
if MaxPerPage_Content*pagespages=pages+1
end if
lngBound=MaxPerPage_Content '最大误差范围
if CurrentPage<1 then CurrentPage=1
if CurrentPage>pages then CurrentPage=pages

dim lngTemp
dim lngTemp1,lngTemp1_1,lngTemp1_2,lngTemp1_1_1,lngTemp1_1_2,lngTemp1_1_3,lngTemp1_2_1,lngTemp1_2_2,lngTemp1_2_3
dim lngTemp2,lngTemp2_1,lngTemp2_2,lngTemp2_1_1,lngTemp2_1_2,lngTemp2_2_1,lngTemp2_2_2
dim lngTemp3,lngTemp3_1,lngTemp3_2,lngTemp3_1_1,lngTemp3_1_2,lngTemp3_2_1,lngTemp3_2_2
dim lngTemp4,lngTemp4_1,lngTemp4_2,lngTemp4_1_1,lngTemp4_1_2,lngTemp4_2_1,lngTemp4_2_2
dim lngTemp5,lngTemp5_1,lngTemp5_2
dim lngTemp6,lngTemp6_1,lngTemp6_2

if CurrentPage=1 then
BeginPoint=1
else
BeginPoint=MaxPerPage_Content*(CurrentPage-1)+1

lngTemp1_1_1=instr(BeginPoint,strContent,"",1)
lngTemp1_1_2=instr(BeginPoint,strContent,"",1)
lngTemp1_1_3=instr(BeginPoint,strContent,"",1)
if lngTemp1_1_1>0 then
lngTemp1_1=lngTemp1_1_1
elseif lngTemp1_1_2>0 then
lngTemp1_1=lngTemp1_1_2
elseif lngTemp1_1_3>0 then
lngTemp1_1=lngTemp1_1_3
else
lngTemp1_1=0
end if

lngTemp1_2_1=instr(BeginPoint,strContent,"lngTemp1_2_2=instr(BeginPoint,strContent,"lngTemp1_2_3=instr(BeginPoint,strContent,"if lngTemp1_2_1>0 then
lngTemp1_2=lngTemp1_2_1
elseif lngTemp1_2_2>0 then
lngTemp1_2=lngTemp1_2_2
elseif lngTemp1_2_3>0 then
lngTemp1_2=lngTemp1_2_3
else
lngTemp1_2=0
end if

if lngTemp1_1=0 and lngTemp1_2=0 then
lngTemp1=BeginPoint
else
if lngTemp1_1>lngTemp1_2 then
lngtemp1=lngTemp1_2
else
lngTemp1=lngTemp1_1+8
end if
end if

lngTemp2_1_1=instr(BeginPoint,strContent,"

",1)
lngTemp2_1_2=instr(BeginPoint,strContent,"

",1)
if lngTemp2_1_1>0 then
lngTemp2_1=lngTemp2_1_1
elseif lngTemp2_1_2>0 then
lngTemp2_1=lngTemp2_1_2
else
lngTemp2_1=0
end if

lngTemp2_2_1=instr(BeginPoint,strContent,"lngTemp2_2_2=instr(BeginPoint,strContent,"if lngTemp2_2_1>0 then
lngTemp2_2=lngTemp2_2_1
elseif lngTemp2_2_2>0 then
lngTemp2_2=lngTemp2_2_2
else
lngTemp2_2=0
end if

if lngTemp2_1=0 and lngTemp2_2=0 then
lngTemp2=BeginPoint
else
if lngTemp2_1>lngTemp2_2 then
lngtemp2=lngTemp2_2
else
lngTemp2=lngTemp2_1+4
end if
end if

lngTemp3_1_1=instr(BeginPoint,strContent,"",1)
lngTemp3_1_2=instr(BeginPoint,strContent,"",1)
if lngTemp3_1_1>0 then
lngTemp3_1=lngTemp3_1_1
elseif lngTemp3_1_2>0 then
lngTemp3_1=lngTemp3_1_2
else
lngTemp3_1=0
end if

lngTemp3_2_1=instr(BeginPoint,strContent,"lngTemp3_2_2=instr(BeginPoint,strContent,"if lngTemp3_2_1>0 then
lngTemp3_2=lngTemp3_2_1
elseif lngTemp3_2_2>0 then
lngTemp3_2=lngTemp3_2_2
else
lngTemp3_2=0
end if

if lngTemp3_1=0 and lngTemp3_2=0 then
lngTemp3=BeginPoint
else
if lngTemp3_1>lngTemp3_2 then
lngtemp3=lngTemp3_2
else
lngTemp3=lngTemp3_1+5
end if
end if

if lngTemp1lngTemp=lngTemp2
else
lngTemp=lngTemp1
end if
if lngTemplngTemp=lngTemp3
end if

if lngTemp>BeginPoint and lngTemp<=BeginPoint+lngBound then
BeginPoint=lngTemp
else
lngTemp4_1_1=instr(BeginPoint,strContent,"",1)
lngTemp4_1_2=instr(BeginPoint,strContent,"",1)
if lngTemp4_1_1>0 then
lngTemp4_1=lngTemp4_1_1
elseif lngTemp4_1_2>0 then
lngTemp4_1=lngTemp4_1_2
else
lngTemp4_1=0
end if

lngTemp4_2_1=instr(BeginPoint,strContent,"lngTemp4_2_1=instr(BeginPoint,strContent,"if lngTemp4_2_1>0 then
lngTemp4_2=lngTemp4_2_1
elseif lngTemp4_2_2>0 then
lngTemp4_2=lngTemp4_2_2
else
lngTemp4_2=0
end if

if lngTemp4_1=0 and lngTemp4_2=0 then
lngTemp4=BeginPoint
else
if lngTemp4_1>lngTemp4_2 then
lngtemp4=lngTemp4_2
else
lngTemp4=lngTemp4_1+5
end if
end if

if lngTemp4>BeginPoint and lngTemp4<=BeginPoint+lngBound then
BeginPoint=lngTemp4
else
lngTemp5_1=instr(BeginPoint,strContent,"lngTemp5_2=instr(BeginPoint,strContent,"if lngTemp5_1>0 then
lngTemp5=lngTemp5_1
elseif lngTemp5_2>0 then
lngTemp5=lngTemp5_2
else
lngTemp5=BeginPoint
end if

if lngTemp5>BeginPoint and lngTemp5BeginPoint=lngTemp5
else
lngTemp6_1=instr(BeginPoint,strContent,"
",1)
lngTemp6_2=instr(BeginPoint,strContent,"
",1)
if lngTemp6_1>0 then
lngTemp6=lngTemp6_1
elseif lngTemp6_2>0 then
lngTemp6=lngTemp6_2
else
lngTemp6=0
end if

if lngTemp6>BeginPoint and lngTemp6BeginPoint=lngTemp6+4
end if
end if
end if
end if
end if

if CurrentPage=pages then
EndPoint=ContentLen
else
EndPoint=MaxPerPage_Content*CurrentPage
if EndPoint>=ContentLen then
EndPoint=ContentLen
else
lngTemp1_1_1=instr(EndPoint,strContent,"",1)
lngTemp1_1_2=instr(EndPoint,strContent,"",1)
lngTemp1_1_3=instr(EndPoint,strContent,"",1)
if lngTemp1_1_1>0 then
lngTemp1_1=lngTemp1_1_1
elseif lngTemp1_1_2>0 then
lngTemp1_1=lngTemp1_1_2
elseif lngTemp1_1_3>0 then
lngTemp1_1=lngTemp1_1_3
else
lngTemp1_1=0
end if

lngTemp1_2_1=instr(EndPoint,strContent,"lngTemp1_2_2=instr(EndPoint,strContent,"lngTemp1_2_3=instr(EndPoint,strContent,"if lngTemp1_2_1>0 then
lngTemp1_2=lngTemp1_2_1
elseif lngTemp1_2_2>0 then
lngTemp1_2=lngTemp1_2_2
elseif lngTemp1_2_3>0 then
lngTemp1_2=lngTemp1_2_3
else
lngTemp1_2=0
end if

if lngTemp1_1=0 and lngTemp1_2=0 then
lngTemp1=EndPoint
else
if lngTemp1_1>lngTemp1_2 then
lngtemp1=lngTemp1_2-1
else
lngTemp1=lngTemp1_1+7
end if
end if

lngTemp2_1_1=instr(EndPoint,strContent,"

",1)
lngTemp2_1_2=instr(EndPoint,strContent,"

",1)
if lngTemp2_1_1>0 then
lngTemp2_1=lngTemp2_1_1
elseif lngTemp2_1_2>0 then
lngTemp2_1=lngTemp2_1_2
else
lngTemp2_1=0
end if

lngTemp2_2_1=instr(EndPoint,strContent,"lngTemp2_2_2=instr(EndPoint,strContent,"if lngTemp2_2_1>0 then
lngTemp2_2=lngTemp2_2_1
elseif lngTemp2_2_2>0 then
lngTemp2_2=lngTemp2_2_2
else
lngTemp2_2=0
end if

if lngTemp2_1=0 and lngTemp2_2=0 then
lngTemp2=EndPoint
else
if lngTemp2_1>lngTemp2_2 then
lngTemp2=lngTemp2_2-1
else
lngTemp2=lngTemp2_1+3
end if
end if
lngTemp3_1_1=instr(EndPoint,strContent,"",1)
lngTemp3_1_2=instr(EndPoint,strContent,"",1)
if lngTemp3_1_1>0 then
lngTemp3_1=lngTemp3_1_1
elseif lngTemp3_1_2>0 then
lngTemp3_1=lngTemp3_1_2
else
lngTemp3_1=0
end if

lngTemp3_2_1=instr(EndPoint,strContent,"lngTemp3_2_2=instr(EndPoint,strContent,"if lngTemp3_2_1>0 then
lngTemp3_2=lngTemp3_2_1
elseif lngTemp3_2_2>0 then
lngTemp3_2=lngTemp3_2_2
else
lngTemp3_2=0
end if

if lngTemp3_1=0 and lngTemp3_2=0 then
lngTemp3=EndPoint
else
if lngTemp3_1>lngTemp3_2 then
lngtemp3=lngTemp3_2-1
else
lngTemp3=lngTemp3_1+4
end if
end if

if lngTemp1lngTemp=lngTemp2
else
lngTemp=lngTemp1
end if
if lngTemplngTemp=lngTemp3
end if

if lngTemp>EndPoint and lngTemp<=EndPoint+lngBound then
EndPoint=lngTemp
else
lngTemp4_1_1=instr(EndPoint,strContent,"",1)
lngTemp4_1_2=instr(EndPoint,strContent,"",1)
if lngTemp4_1_1>0 then
lngTemp4_1=lngTemp4_1_1
elseif lngTemp4_1_2>0 then
lngTemp4_1=lngTemp4_1_2
else
lngTemp4_1=0
end if

lngTemp4_2_1=instr(EndPoint,strContent,"lngTemp4_2_1=instr(EndPoint,strContent,"if lngTemp4_2_1>0 then
lngTemp4_2=lngTemp4_2_1
elseif lngTemp4_2_2>0 then
lngTemp4_2=lngTemp4_2_2
else
lngTemp4_2=0
end if

if lngTemp4_1=0 and lngTemp4_2=0 then
lngTemp4=EndPoint
else
if lngTemp4_1>lngTemp4_2 then
lngtemp4=lngTemp4_2-1
else
lngTemp4=lngTemp4_1+4
end if
end if
if lngTemp4>EndPoint and lngTemp4<=EndPoint+lngBound then
EndPoint=lngTemp4
else
lngTemp5_1=instr(EndPoint,strContent,"lngTemp5_2=instr(EndPoint,strContent,"if lngTemp5_1>0 then
lngTemp5=lngTemp5_1-1
elseif lngTemp5_2>0 then
lngTemp5=lngTemp5_2-1
else
lngTemp5=EndPoint
end if

if lngTemp5>EndPoint and lngTemp5EndPoint=lngTemp5
else
lngTemp6_1=instr(EndPoint,strContent,"
",1)
lngTemp6_2=instr(EndPoint,strContent,"
",1)
if lngTemp6_1>0 then
lngTemp6=lngTemp6_1+3
elseif lngTemp6_2>0 then
lngTemp6=lngTemp6_2+3
else
lngTemp6=EndPoint
end if
if lngTemp6>EndPoint and lngTemp6EndPoint=lngTemp6
end if
end if
end if
end if
end if
end if
response.write mid(strContent,BeginPoint,EndPoint-BeginPoint)
response.write "

"
if CurrentPage>1 then
response.write "上一页  "
end if
for i=1 to pages
if i=CurrentPage then
response.write "["&cstr(i)&"] "
else
response.write "["&i&"] "
end if
next
if CurrentPageresponse.write " 下一页"
end if
response.write "

"
end if
end sub
%>

在需要调用的地方写<%Call AutoShow(rs("art"))%>

不过尽量保证文章显示页面名称为:ShowArticle.asp,保证不了的话就把代码里面所有的ShowArticle.asp替换成你自己的页面名称。

回答2:

分页的原理:
1 在内容里插入分页的标识
2 按内容的字数进行分页

处理分页就很简单了