對資料庫中的記錄用上一條下一條顯示(三)

來源:互聯網
上載者:User
三、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 = rs2.Bookmark + rs2.RecordCount - 1

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 %>

    就可以使用if Session("Bookmark") > BkStart、if Session("Bookmark") < BkEnd,比較當前的位置Session("Bookmark")和第一條BkStart、第末條BkEnd的位置,來判斷是否要顯示 [上一條] [下一條] 的超連結。   


相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。