用ASP做一个分页程序
2018-09-06 11:44
请看以下实现ASP分页程序的代码:
$#@60;anguage=vbscript
dim conn
dim connstr
dim totalPut
dim CurrentPage
dim TotalPages
dim i,j
dim sql
dim rs
on error resume next
打开数据库
connstr=DBQ=+server.mappath(book.mdb)+;DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};
conn.open connstr
set rs=server.createobject(adodb.recordset)
定义每页文章显示数
const MaxPerPage=18
if not isempty(request(page)) then
currentPage=cint(request(page))
else
currentPage=1
end if
sql=select * from learning order by articleid desc
Set rs= Server.CreateObject(ADODB.Recordset)
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.write $#@60;p align=center$#@62; 还 没 有 任 何 文 章$#@60;/p$#@62;
else
数据库中文章数totalput
totalPut=rs.recordcount
if currentpage$#@60;1 then
currentpage=1
end if
统计总页数currentpage
if (currentpage-1)*MaxPerPage$#@62;totalput then
if (totalPut mod MaxPerPage)=0 then
currentpage= totalPut MaxPerPage
else
currentpage= totalPut MaxPerPage + 1
end if
end if
if currentPage=1 then
showpage totalput,MaxPerPage,index.asp
showContent
showpage totalput,MaxPerPage,index.asp
else
if (currentPage-1)*MaxPerPage$#@60;totalPut then
rs.move (currentPage-1)*MaxPerPage
dim b mark
bookmark=rs.bookmark
showpage totalput,MaxPerPage,index.asp
showContent
showpage totalput,MaxPerPage,index.asp
else
currentPage=1
showpage totalput,MaxPerPage,index.asp
showContent
showpage totalput,MaxPerPage,index.asp
end if
end if
rs.close
end if
set rs=nothing
conn.close
set conn=nothing
sub showContent
dim i
i=0
do while not rs.eof
$#@62;
选择显示数据库内容
$#@60;a href=openarticle.asp?id=$#@60;=rs(articleid)$#@62;$#@62;$#@60;=rs(title)$#@62;$#@60;/a$#@62;[点击:$#@60;=rs(hits)$#@62;]$#@60;br$#@62;
$#@60;
当显示记录大于maxperpage时结束这页
i=i+1
if i$#@62;=MaxPerPage then exit do
rs.movenext
loop
end sub
function showpage(totalnumber,maxperpage,filename)
求出当每页18篇文章时总共的页数
dim n
if totalnumber mod maxperpage=0 then
n= totalnumber maxperpage
else
n= totalnumber maxperpage+1
end if
response.write $#@60;form method=Post action=filename$#@62;
response.write $#@60;p align=center$#@62;$#@60;font color=#000080$#@62;$#@62;$#@62;分页$#@60;/font$#@62;
显示页数链接的条件
if CurrentPage$#@60;2 then
response.write $#@60;font color=#000080$#@62;首页 上一页$#@60;/font$#@62;
else
response.write $#@60;a href=filename?page=1$#@62;首页$#@60;/a$#@62;
response.write $#@60;a href=filename?page=CurrentPage-1$#@62;上一页$#@60;/a$#@62;
end if
if n-currentpage$#@60;1 then
response.write $#@60;font color=#000080$#@62;下一页 尾页$#@60;/font$#@62;
else
response.write $#@60;a href=filename?page=(CurrentPage+1)
response.write $#@62;下一页$#@60;/a$#@62; $#@60;a href=filename?page=n$#@62;尾页$#@60;/a$#@62;
end ifc
response.write $#@60;font color=#000080$#@62; 页次:$#@60;/font$#@62;$#@60;strong$#@62;$#@60;font color=red$#@62;CurrentPage$#@60;/font$#@62;$#@60;font color=#000080$#@62;/n$#@60;/strong$#@62;页$#@60;/font$#@62;
response.write $#@60;font color=#000080$#@62; 共$#@60;b$#@62;totalnumber$#@60;/b$#@62;篇文章 $#@60;b$#@62;maxperpage$#@60;/b$#@62;篇文章/页$#@60;/font$#@62;
response.write $#@60;font color=#000080$#@62;转到:$#@60;/font$#@62;$#@60;input type=text name=page size=4 maxlength=10 class=smallInput value=¤tpage$#@62;
response.write $#@60;input class=buttonface type=submit value= Goto name=cndok$#@62;$#@60;/span$#@62;$#@60;/p$#@62;$#@60;/form$#@62;
end function
$#@62;
以上代码很简单的就实现了ASP网页的多种分页功能,不论是对浏览者还是管理者都能很方便的浏览和管理,我只在相关部分作了一些解释,象这个ASP程序还必须有数据库的支持才可以,关于数据库的问题我就不详述了,具体的实例大家可以看看我的主页(上的文章管理程序,另外还有具体的程序下载!