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

二、用Bookmark(书签)

Bookmark(书签)对RecordSet的一条记录做一个记号。

使用时先移动到那条资料,然后给予Bookmark属性一个名称,即书签记号的名称,当要回到该条记录时,将Bookmark 属性设为所设定书签记号的名称即可。

Bookmark例子

如何使用Bookmark(书签)呢?让我们看一个於ASP程式码当中使用Bookmark的例子。

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

 1   
 2  
 3Set conn1 = Server.CreateObject("ADODB.Connection")   
 4  
 5conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"   
 6  
 7Set rs2 = Server.CreateObject("ADODB.Recordset")   
 8  
 9SqlStr = "SELECT * From 着作"   
10  
11rs2.Open SqlStr,conn1,1,1   
12  
13rs2.MoveNext   
14  
15if Request("sel") = "last" then   
16  
17rs2.MoveLast   
18  
19elseif Request("sel") = "first" then   
20  
21rs2.MoveFirst   
22  
23elseif Request("sel") = "prev" then   
24  
25Session("position") = Session("position") - 1   
26  
27rs2.Move Session("position")   
28  
29elseif Request("sel") = "next" then   
30  
31Session("position") = Session("position") + 1   
32  
33rs2.Move Session("position")   
34  
35elseif Request("sel") = "set" then   
36  
37rs2.Move Session("position")   
38  
39Session("bk") = rs2.Bookmark   
40  
41elseif Request("sel") = "go" then   
42  
43rs2.Bookmark = Session("bk")   
44  
45else   
46  
47Session("position") = 0   
48  
49end if   
50  
 1<table border="0" cellpadding="5" colspan="8">
 2<tr>
 3<td align="CENTER" bgcolor="#008080"><font color="#FFFFFF">书名</font></td>
 4<td align="CENTER" bgcolor="#008080"><font color="#FFFFFF">出版</font></td>
 5<td align="CENTER" bgcolor="#008080"><font color="#FFFFFF">图片</font></td>
 6<td align="CENTER" bgcolor="#008080"><font color="#FFFFFF">简介</font></td>
 7<tr>
 8<td align="CENTER" bgcolor="f7efde">```
 9= rs2("书名")
10```</td>
11<td align="CENTER" bgcolor="f7efde">```
12= rs2("出版")
13```</td>
14<td align="CENTER" bgcolor="f7efde">```
15= rs2("图片")
16```</td>
17<td align="CENTER" bgcolor="f7efde">```
18= rs2("简介")
19```</td>
20</tr>
21</tr></table>
1<a href="rs13.asp?sel=first">第一条</a>
1 if Session("position") > 0 then 
1<a href="rs13.asp?sel=prev">上一条</a>
1 end if 
1 if Session("position") < rs2.RecordCount -1 then 
1<a href="rs13.asp?sel=next">下一条</a>
1 end if 
1<a href="rs13.asp?sel=last">最末条</a>
1<a href="rs13.asp?sel=set">设定Bookmark</a>
1<a href="rs13.asp?sel=go">到Bookmark</a>
1 rs2.Close 

由Session("bk")储存这个使用者RecordSet 的bookmark(书签)位置,当按下 [设定Bookmark] 超级连接时,由

1<a href="rs13.asp?sel=set">设定Bookmark</a>

,将sel设定为set,并重新执行rs13.asp的asp码。由以下的程式部份,首先rs2.Move Session("position")回到上次的位置,然后使用Session("bk") = rs2.Bookmark设定书签,Session("Bookmark")储存书签记号的名称:

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

rs2.MoveLast

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

rs2.MoveFirst

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

Session("position") = Session("position") - 1

rs2.Move Session("position")

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

Session("position") = Session("position") + 1

rs2.Move Session("position")

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

rs2.Move Session("position")

Session("bk") = rs2.Bookmark

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

rs2.Bookmark = Session("bk")

else

Session("position") = 0

end if

当按下 [到Bookmark] 超级连接时,由

1<a href="rs13.asp?sel=go">到Bookmark</a>

,将sel设定为go,并重新执行rs13.asp的asp码。由以上的程式部份,由rs2.Bookmark = Session("bk")回到上次书签记号的位置。

Published At
Categories with Web编程
Tagged with
comments powered by Disqus