当前位置: 首页 > 图文教程 > 网络编程 > ASP > 用ASP做一个分页程序

ASP
在ASP中使用SQL语句之10:视图
在ASP中使用SQL语句之11:记录统计
VBS、ASP代码语法加亮显示的类(2)
asp作品保护方案
使用NextRecordset通过一个Connection输出多个select查询
超长字符的智能分页-支持HTML
远程获取内容,并将内容存在本地电脑上,包括任何文件
把文件存进access数据库然后取出来供人下载的代码
一个分页存储过程
在asp文件中访问flash详细信息
关于生成目录树结构的类
用自定义函数获取汉字的首字母
asp在SQL SER2k中新建帐号和给帐号权限的实现
不用 EOF 以加快记录循环
js的单元格颜色间隔
根据选择的Checkbox动态在表格中列出选择的值
URL欺骗
汉字转化为拼音
一个不需要第三方组件,可实现华简单图形的类
组合查询之核心:拼接字符串

用ASP做一个分页程序


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 35 ::
收藏到网摘: n/a

请看以下实现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)};"

set conn=server.createobject("ADODB.CONNECTION")

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$