asp+access系统中怎么分页?
3个回答
展开全部
代码如下:
<%
'创建数据库连接对象
set conn=server.createobject("adodb.connection")
'打开数据库,如果数据库没有密码 可以省略
conn.open("DRIVER=Driver do Microsoft Access (*.mdb);UID=admin;pwd=;dbq="&server.mappath("MyMDB.mdb"))
'创建结果集对象
set rs=server.createobject("adodb.recordset")
strsql="select * from table" '设置sql 查询语句
rs.open strsql,conn,1,1 ‘使用结果集RS执行strsql语句
%>
然后是分页属性的设置
<%
rs.PageSize=3 ‘设置页码
pagecount=rs.PageCount '获取总页码
page=int(request("page")) '接收页码
if page<=0 then page=1 '判断
if request("page")="" then page=1
rs.AbsolutePage=page '设置本页页码
%>
再然后是body里的分页显示
<%
if rs.bof and rs.eof then
response.write("NULL")
else
for i=1 to rs.PageSize
response.write rs("name")
response.write("<hr>")
rs.movenext
next
end if
%>
最后是显示分页控制按钮
<%if page=1 and not page=pagecount then%>
首页|前一页| <a href="log1.asp?page=<%=page+1%>">后一页</a>| <a href="log1.asp?page=<%=pagecount%>">末页</a>
<%elseif page<>1 and not page=pagcount then%>
<a href="log1.asp?page=1">首页</a>| <a href="log1.asp?page=<%=page-1%>">前一页</a>| <a href="log1.asp?page=<%=page+1%>">后一页</a>| <a href="log1.asp?page=<%=pagecount%>">末页</a>
<%elseif page=pagecount then%>
<a href="log1.asp?page=1">首页</a>| <a href="log1.asp?page=<%=page-1%>">前一页</a>| 下一页| 末页
<%end if%>
其中:
rs.pagesize:记录的条数
rs.recordcount:记录总数
rs.pagecount:总页数
rs.AbsolutePage=Page 这个是设置当前页
以上都是关键点,一定记清楚。
小提示:MyMDB.mdb 为数据库 table1表名 rs(1).name等等之类的是取记录集中的值 这些都可以自由更改,需要参照实际情况,其余的都可以直接复制 把注释删掉就ok。
展开全部
1.原理:ASP分页其实是将数据库中的记录分割成若干段“分屏显示”
,为什么叫“分屏显示”显示,因为其实显示的原始页面只有1页,通过控制数据库显示,来刷新页面的显示内容(可能一些朋友会误会为动态产生若干页面来显示,呵呵,我刚刚学的时候也是这样以为的)
2.用到的几个函数
rs.pagesize--->定义一页显示记录的条数
rs.recordcount--->统计记录总数
rs.pagecount---->统计总页数
这几个函数相信大家都很快就明白意识了,不过还有一个函数它的用法可能理解起来难一点
rs.absolutepage--->将数据库指针移动到当前页要显示的数据记录的第一条记录,比如有20条记录的一个数据库,我们分为10条记录显示一页,当你的页面为2时,通过使用rs.absolutepage将指针移动到第11条记录处,依次类推....
3.大家明白原理后我们开始来看一段分页的程序,其中的一些文件我就不一一详细讲解了,不明白的朋友可以先看
http://www.2yup.com/asp/forum/branch.asp?pid=55084&pn=5
--------------------------------------------------
<!--#include file=conn1.asp-->
<%
dim m,n
set rs=server.CreateObject("adodb.recordset")
sqlstr="select * from message order by time desc"
rs.open sqlstr,conn,3,3
rs.pagesize=10 '定义一页显示的记录数目
tatalrecord=rs.recordcount '获取记录总数目
tatalpages=rs.pagecount '获取分页的数目
rs.movefirst
----------------------------
nowpage=request("page") '用request获取当前页数,注意page是自己定义的变量并非函数
--------------------------
if nowpage&"x"="x" then '处理页码为空时的情况
nowpage=1
else
nowpage=cint(nowpage) '将页码转换成数字型
end if
--------------------------------
rs.absolutepage=nowpage '将指针移动到当前显示页的第一条记录
-------------------------------
%>
---------------------------------------------
<%
n=1
while not rs.eof and n<=rs.pagesize
response.Write(rs("user") & "<br>")
response.Write(rs("tt") & "<br>")
n=n+1
rs.movenext '显示页面的数据
wend
%>
-------------------------------------------
共:<%=tatalpages%>页 当前为:<%=nowpage%>页
<%if nowpage>1 then%>
<a href="fy.asp?page=<%=nowpage-1%>">上一页</a>
<%else%>
上一页
<%end if%>
<%for k=1 to tatalpages%>
<%if k<>nowpage then %>
<a href="fy.asp?page=<%=k%>"><%=k%></a>
<%else%>
<%=k%>
<%end if%>
<%next%>
<%if nowpage < tatalpages then%>
<a href="fy.asp?page=<%=nowpage+1%>">下一页</a>
<%else%>
下一页
<%end if%> '加上页码连接
<%if nowpage<>1 then%>
<a href="fy.asp?page=<%=1%>"> 首页</a>
<%else%>
首页
<%end if%>
<%if nowpage<>tatalpages then %>
<a href="fy.asp?page=<%=tatalpages%>">末页</a>
<%else%>
末页
<%end if%>
,为什么叫“分屏显示”显示,因为其实显示的原始页面只有1页,通过控制数据库显示,来刷新页面的显示内容(可能一些朋友会误会为动态产生若干页面来显示,呵呵,我刚刚学的时候也是这样以为的)
2.用到的几个函数
rs.pagesize--->定义一页显示记录的条数
rs.recordcount--->统计记录总数
rs.pagecount---->统计总页数
这几个函数相信大家都很快就明白意识了,不过还有一个函数它的用法可能理解起来难一点
rs.absolutepage--->将数据库指针移动到当前页要显示的数据记录的第一条记录,比如有20条记录的一个数据库,我们分为10条记录显示一页,当你的页面为2时,通过使用rs.absolutepage将指针移动到第11条记录处,依次类推....
3.大家明白原理后我们开始来看一段分页的程序,其中的一些文件我就不一一详细讲解了,不明白的朋友可以先看
http://www.2yup.com/asp/forum/branch.asp?pid=55084&pn=5
--------------------------------------------------
<!--#include file=conn1.asp-->
<%
dim m,n
set rs=server.CreateObject("adodb.recordset")
sqlstr="select * from message order by time desc"
rs.open sqlstr,conn,3,3
rs.pagesize=10 '定义一页显示的记录数目
tatalrecord=rs.recordcount '获取记录总数目
tatalpages=rs.pagecount '获取分页的数目
rs.movefirst
----------------------------
nowpage=request("page") '用request获取当前页数,注意page是自己定义的变量并非函数
--------------------------
if nowpage&"x"="x" then '处理页码为空时的情况
nowpage=1
else
nowpage=cint(nowpage) '将页码转换成数字型
end if
--------------------------------
rs.absolutepage=nowpage '将指针移动到当前显示页的第一条记录
-------------------------------
%>
---------------------------------------------
<%
n=1
while not rs.eof and n<=rs.pagesize
response.Write(rs("user") & "<br>")
response.Write(rs("tt") & "<br>")
n=n+1
rs.movenext '显示页面的数据
wend
%>
-------------------------------------------
共:<%=tatalpages%>页 当前为:<%=nowpage%>页
<%if nowpage>1 then%>
<a href="fy.asp?page=<%=nowpage-1%>">上一页</a>
<%else%>
上一页
<%end if%>
<%for k=1 to tatalpages%>
<%if k<>nowpage then %>
<a href="fy.asp?page=<%=k%>"><%=k%></a>
<%else%>
<%=k%>
<%end if%>
<%next%>
<%if nowpage < tatalpages then%>
<a href="fy.asp?page=<%=nowpage+1%>">下一页</a>
<%else%>
下一页
<%end if%> '加上页码连接
<%if nowpage<>1 then%>
<a href="fy.asp?page=<%=1%>"> 首页</a>
<%else%>
首页
<%end if%>
<%if nowpage<>tatalpages then %>
<a href="fy.asp?page=<%=tatalpages%>">末页</a>
<%else%>
末页
<%end if%>
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
假定你已经将一个表读入了一个记录集dbrs,在ASP中如何对这个dbrs进行分页显示呢?
其实就是学习使用dbrs的几个参数
1. dbrs.pagesize '每页的记录数
2. dbrs.absolutepage '当前页面指到第几页
3. dbrs.pagecount '记录集总页数,这个值不能显式指定,服务器根据pagesize的记录总数计算出来总页数
教程作者:http://www.web745.com
if dbrs.recordcount<>0 then
dbrs.pagesize=15
if request("pageno")="" then
pageno=1
else
pageno=cint(request("pageno"))
end if
dbrs.absolutepage=pageno
for i=1 to dbrs.pagesize
'这个地方显示你的数据,你想怎么显示就怎么显示
dbrs.movenext
if dbrs.eof then exit for
next
end if
‘以上达到了显示的效果,可以看到要接收一个叫pageno的参数
那么就想办法把这个参数传给当前页面,就能实现分页了
if pageno<>1 then '如果现在不是在第一页,那么就使“上一页”的链接可点击
pageno=cint(pageno)
response.write "<a href='##当前页面名称?pageno="&pageno-1&">"
response.write "上一页"
response.write "</a>"
else '否则只显示不带链接的上一页
response.write "上一页"
end if
'################同样,可这样做下一页的链接
if pageno<>dbrs.pagecount then '如果现在不是在最后一页,那么就使“下一页”的链接可点击
pageno=cint(pageno)
response.write "<a href='##当前页面名称?pageno="&pageno+1&">"
response.write "下一页"
response.write "</a>"
else '否则只显示不带链接的上一页
response.write "下一页"
end if
这样就完成了简单的分页,ASP初学者可能觉得分页很烦
有什么问题可以加我QQ:88235786
其实就是学习使用dbrs的几个参数
1. dbrs.pagesize '每页的记录数
2. dbrs.absolutepage '当前页面指到第几页
3. dbrs.pagecount '记录集总页数,这个值不能显式指定,服务器根据pagesize的记录总数计算出来总页数
教程作者:http://www.web745.com
if dbrs.recordcount<>0 then
dbrs.pagesize=15
if request("pageno")="" then
pageno=1
else
pageno=cint(request("pageno"))
end if
dbrs.absolutepage=pageno
for i=1 to dbrs.pagesize
'这个地方显示你的数据,你想怎么显示就怎么显示
dbrs.movenext
if dbrs.eof then exit for
next
end if
‘以上达到了显示的效果,可以看到要接收一个叫pageno的参数
那么就想办法把这个参数传给当前页面,就能实现分页了
if pageno<>1 then '如果现在不是在第一页,那么就使“上一页”的链接可点击
pageno=cint(pageno)
response.write "<a href='##当前页面名称?pageno="&pageno-1&">"
response.write "上一页"
response.write "</a>"
else '否则只显示不带链接的上一页
response.write "上一页"
end if
'################同样,可这样做下一页的链接
if pageno<>dbrs.pagecount then '如果现在不是在最后一页,那么就使“下一页”的链接可点击
pageno=cint(pageno)
response.write "<a href='##当前页面名称?pageno="&pageno+1&">"
response.write "下一页"
response.write "</a>"
else '否则只显示不带链接的上一页
response.write "下一页"
end if
这样就完成了简单的分页,ASP初学者可能觉得分页很烦
有什么问题可以加我QQ:88235786
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询