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

2018-09-06 12:49

阅读:447

  三、Bookmark/MoveNext/MovePrevious例子

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

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

<%


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设定第末条的位置


评论


亲,登录后才可以留言!