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

三、Bookmark/MoveNext/MovePrevious例子

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

譬如ASP程式码rs15.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  
13BkStart = rs2.Bookmark   
14  
15BkEnd = rs2.Bookmark + rs2.RecordCount - 1   
16  
17rs2.MoveNext   
18  
19if Request("sel") = "prev" then   
20  
21rs2.Bookmark = Session("Bookmark")   
22  
23rs2.MovePrevious   
24  
25elseif Request("sel") = "next" then   
26  
27rs2.Bookmark = Session("Bookmark")   
28  
29rs2.MoveNext   
30  
31end if   
32  
33Session("Bookmark") = rs2.Bookmark   
34  
 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 = Session("Bookmark") 
1 if Session("Bookmark") > BkStart then 
1<a href="rs15.asp?sel=prev">上一条</a>
1 end if 
1 if Session("Bookmark") < BkEnd then 
1<a href="rs15.asp?sel=next">下一条</a>
1 end if 
1 rs2.Close 

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

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

1<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")储存书签记号的名称。

当按下 [下一条] 超级连接时,由

1<a href="rs15.asp?sel=next">下一条</a>

,将sel设定为next,并重新执行rs15.asp的asp码。由以上的程式部份,回到上次书签的位置,然后使用MoveNext移动到下一条的位置。

由``` = Session("Bookmark")

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

SqlStr = "SELECT * From 着作"

rs2.Open SqlStr,conn1,1,1

BkStart = rs2.Bookmark

BkEnd = rs2.Bookmark + rs2.RecordCount - 1

if Session("Bookmark") > BkStart then

上一条

end if

1  

if Session("Bookmark") < BkEnd then

下一条

end if

1  
2就可以使用if Session("Bookmark") &gt; BkStart、if Session("Bookmark") &lt; BkEnd,比较当前的位置Session("Bookmark")和第一条BkStart、第末条BkEnd的位置,来判断是否要显示 [上一条] [下一条] 的超连结。
Published At
Categories with Web编程
Tagged with
comments powered by Disqus