【 tulaoshi.com - ASP 】
三、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 =