實(shí)例一:分頁(yè)顯示及導(dǎo)航: 為什么我要再提分頁(yè)的這個(gè)問(wèn)題呢?因?yàn)檫@是一個(gè)最基本的問(wèn)題,雖然有很多關(guān)于分頁(yè)的文章,但我覺(jué)得他們的方法偏于復(fù)雜。其實(shí)RecordSet的AbsolutePage就可以輕松的實(shí)現(xiàn)分頁(yè),當(dāng)你指定了PageSize屬性后,對(duì)AbsolutePage指定值就可以翻轉(zhuǎn)到指定的頁(yè)面。但是如果你想使用AbsolutePage的話,你必須在打開(kāi)RecordSet對(duì)象之前將它的CursorLocation值設(shè)為adUseClient,這個(gè)屬性是繼承Connection對(duì)象的一個(gè)相同屬性的。你也可以在打開(kāi)Connection對(duì)象之前來(lái)設(shè)定它。下面是源代碼,為了方便,我將導(dǎo)航欄獨(dú)立成了一個(gè)子程序方便大家使用。 <% sub navigator(PageNo,Target) Response.Write "<table border=0>" Response.Write "<tr>" Response.Write "<td>" if PageNo>1 then Response.write "<a href="&chr(34)&Target&"?Page=1"&chr(34)&">┃第一頁(yè)</a>" else Response.Write "┃第一頁(yè)" end if Response.Write "</td>" Response.Write "<td>" if PageNo<rs.PageCount then Response.write"<a href="&chr(34)&Target&"?Page="&PageNo+1&chr(34)&">┃下一頁(yè)</a>" else Response.Write "┃下一頁(yè)" end if Response.Write "</td>" Response.Write "<td>" if PageNo>1 then Response.write "<a href="&chr(34)&Target&"?Page="&PageNo-1&chr(34)&">┃前一頁(yè)</a>" else Response.Write "┃前一頁(yè)" end if Response.Write "</td>" Response.Write "<td>" if PageNo<rs.PageCount then Response.write "<a href="&chr(34)&Target&"?Page="&rs.PageCount&chr(34)&">┃最后一頁(yè)</a>" else Response.Write "┃最后一頁(yè)" end if Response.Write "</td>" Response.Write "<td>" Response.Write "┃頁(yè)次:"&PageNo&"/"&rs.PageCount&"頁(yè)┃"&rs.PageSize&"條記錄/頁(yè)┃" Response.Write "</td>" Response.Write "<td valign="middle">" Response.Write "<form action="&chr(34)&Target&chr(34)&" method="&chr(34)&"POST"&chr(34)&">" Response.Write "<input type="text"size=3 maxlength=4 name="Page">" Response.Write " <input type="submit"value="轉(zhuǎn)到">" Response.Write "</form>" Response.Write "</td>" Response.Write "</tr>" Response.Write "" end sub %>
<% const adCmdText=&H0001 const adVarChar=200 const adInteger=3 const adParamInput=&H0001 const adCmdTable=&H0002 const adUseClient=3 const adDate=7 const adLongVarChar=201 set conn=Server.CreateObject("ADODB.Connection") conn.ConnectionString="Driver={Microsoft Access Driver (*.mdb)};DBQ="& _ Server.Mappath("/source_asp")&"/process/process.mdb;" conn.Open %>
<% const MaxPageSize=5 %> <html> <head> <title> See Book </title> </head> <body> <% dim i,j,PageNo set rs=Server.CreateObject("ADODB.RecordSet") rs.ActiveConnection=conn rs.CursorLocation=adUseClient rs.Open "Select * From books",,,adCmdText if rs.BOF then Response.Write "歡迎使用圖書,資料管理程序!" else rs.PageSize=MaxPageSize if isempty(Request.QueryString("Page")) then PageNo=1 elseif cInt(Request.QueryString("Page"))<1 then PageNo=1 elseif cInt(Request.QueryString("Page"))>rs.PageCount then PageNo=rs.PageCount else PageNo=cInt(Request.QueryString("Page")) end if if Request.ServerVariables("Request_Method")="POST" and not Isempty(Request.Form("Page")) then PageNo=cInt(Request.Form("Page")) end if rs.AbsolutePage=PageNo Response.Write "<table border="0" width="100%">" Response.Write "<tr><td colspan="&rs.fields.count&">" Target="books.asp" call navigator(PageNo,Target) "調(diào)用導(dǎo)航欄 Response.Write "</td></tr>" Response.Write "<tr>" for i=0 to rs.fields.count-1 Response.Write "<td>"&rs.fields.item(i).name&"</td>" next Response.Write "</tr>" j=0 while (not rs.EOF) and j<rs.PageSize Response.Write "<tr>" for i=0 to rs.fields.count-1 if i=1 then Response.Write "<td>"&"<a href="&chr(34)&"status.asp?BookName="& _ rs.fields.item(i).value&chr(34)&">"&rs.fields.item(i).value&"</a></td>" "這里這樣寫是為了級(jí)聯(lián)式查詢而做的。 else Response.Write "<td>"&rs.fields.item(i).value&"</td>" end if next Response.Write "</tr>" rs.MoveNext j=j+1 wend Response.Write "" end if %>
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!