当前位置: 首页 > 图文教程 > 网络编程 > ASP > 对数据库中的记录用上一条下一条显示(三)

ASP
简单ASP论坛DIY
如何防止页面中的敏感信息被提取
asp创建对象及中文显示解决技巧
基础开发入门级:JSP与ASP的比较
数据库受到限制怎么办?
ASP初学者常犯的几个错误
Asp定时执行操作、Asp定时读取数据库(网页定时操作详解)
ASP优化:非常实用的ASP提速技巧五则
ASP教程:解决ASP脚本运行超时的方法
ASP安全:简单学习ASP连接数据库方法
简单一招用ASP实现对IE地址栏参数的判断
asp控制xml数据库的6段非常的经典代码
ASP进阶:验证身份证号是否正确的代码
ASP教程:使用ASP生成图片彩色校验码
ASP进阶:用ASP判断文件地址是否有效
ASP进阶:用asp做的简单搜索引擎代码
ASP实例 挂QQ的网页源代码ASP/PHP
ASP答疑 解决ASP脚本运行超时的方法
轻轻松松破解开别人ASP木马密码的方法
用ASP操作Access数据库 ADOX的使用

ASP 中的 对数据库中的记录用上一条下一条显示(三)


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

  三、Bookmark/MoveNext/MovePrevious例子

让我们看一个ASP程式码当中使用Bookmark/MoveNext/MovePrevious做到上一条下一条功能的例子。

譬如ASP程式码rs15.asp如下:

<%

Set conn1 = Server.CreateObject("ADODB.Connection")

conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

Set rs2 = Server.CreateObject("ADODB.Recordset")

SqlStr = "SELECT * From 着作"

rs2.Open SqlStr,conn1,1,1

BkStart = rs2.Bookmark

BkEnd = rs2.Bookmark + rs2.RecordCount - 1

rs2.MoveNext

if Request("sel") = "prev" then

rs2.Bookmark = Session("Bookmark")

rs2.MovePrevious

elseif Request("sel") = "next" then

rs2.Bookmark = Session("Bookmark")

rs2.MoveNext

end if

Session("Bookmark") = rs2.Bookmark

%>

<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0>

<TR>

<TD ALIGN=CENTER BGCOLOR="#008080"><FONT COLOR="#FFFFFF">书名</FONT></TD>

<TD ALIGN=CENTER BGCOLOR="#008080"><FONT COLOR="#FFFFFF">出版</FONT></TD>

<TD ALIGN=CENTER BGCOLOR="#008080"><FONT COLOR="#FFFFFF">图片</FONT></TD>

<TD ALIGN=CENTER BGCOLOR="#008080"><FONT COLOR="#FFFFFF">简介</FONT></TD>

<TR>

<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs2("书名")%></TD>

<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs2("出版")%></TD>

<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs2("图片")%></TD>

<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs2("简介")%></TD>

</TR>

</TABLE>

<% = Session("Bookmark") %>

<% if Session("Bookmark") > BkStart then %>

<A href=rs15.asp?sel=prev>上一条</A>

<% end if %>

<% if Session("Bookmark") < BkEnd then %>

<A href=rs15.asp?sel=next>下一条</A>

<% end if %>

<% rs2.Close %>

以上的 ASP程式码rs15.asp,在用户端使用浏览器,浏览执行的结果,显示上一条下一条的功能。

由Session("Bookmark")储存这个使用者RecordSet 的bookmark(书签)位置,当按下 [上一条] 超级连接时,由<A href=rs15.asp?sel=prev>上一条</A>,将sel设定为prev,并重新执行rs15.asp的asp码。由以下的程式部份,首先将Bookmark 属性设为所设定书签记号的名称Session("Bookmark")回到上次书签的位置,然后使用MovePrevious移动到上一条的位置:

if Request("sel") = "prev" then

rs2.Bookmark = Session("Bookmark")

rs2.MovePrevious

elseif Request("sel") = "next" then

rs2.Bookmark = Session("Bookmark")

rs2.MoveNext

end if

Session("Bookmark") = rs2.Bookmark

然后使用Session("Bookmark") = rs2.Bookmark设定书签,Session("Bookmark")储存书签记号的名称。

当按下 [下一条] 超级连接时,由<A href=rs15.asp?sel=next>下一条</A>,将sel设定为next,并重新执行rs15.asp的asp码。由以上的程式部份,回到上次书签的位置,然后使用MoveNext移动到下一条的位置。

由<% = Session("Bookmark") %>显示书签的位置,请注意第一条记录的位置并非为0而是1792,因此我们必须取得第一条和第末条的书签位置值,以判断是否要显示 [上一条] [下一条] 超级连接。

为了判断是否要显示 [上一条] [下一条] 超级连接,由以下的程式部份,我们设定了两个书签,由BkStart = rs2.Bookmark设定第一条的位置,由BkEnd = rs2.Bookmark + rs2.RecordCount - 1设定第末条的位置:

<%

SqlStr = "SELECT * From 着作"

rs2.Open SqlStr,conn1,1,1

BkStart = rs2.Bookmark

BkEnd =