利用ASP實現對錶的分頁瀏覽(上)

來源:互聯網
上載者:User
分頁|分頁 大家都知道,ASP有著強大的資料庫操作能力,這與她能方便的調用ActiveX對象是密不可分的。下面我給大家介紹一種ASP利用ADO對象實現對資料庫記錄分頁顯示的方法。以下代碼均在WIN98+PWS+MSACCESS環境下通過。 

  在這裡我主要通過ADO對象集中的Recordset對象來實現各種資料庫操作的。先介紹幾個用於分頁顯示的Recordset屬性。 

    PageSize:每頁顯示的記錄數。 

    PageCount:根據使用者設好的PageSize和表中的總記錄數,系統自動算出總頁數。 

    RecordCount:表中的總記錄數。 

    AbsolutePage:表示當前頁碼。如將AbsolutePage屬性設為3,則目前記錄移至第3頁第1條(也就是第31條)。 

  看到Recordset有了這幾個屬性後,相信大家也都覺得做一個分頁顯示的程式是很簡單的。下面講一下思路,所有實現這一功能的代碼都放在display.asp中,按執行的順序分別是:開啟資料庫及表、讀取使用者要求的顯示方式、設定好PageSize和AbsolutePage、將內容輸出到瀏覽器、設定好導航條。以下是代碼: 


<%'---------------------------開啟資料庫及表 
set conn=server.createobject("ADODB.Connection") 
filepath=server.mappath("abc.mdb") '-------假設資料庫檔案是"abc.mdb" 
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & filepath 
set rs=server.createobject("ADODB.Recordset") 
rs.open "main",conn,3,2 '-------假設表的名字是"main" 
%> 
<%'---------------------------讀取使用者要求的顯示方式(通過參數傳遞) 
line=cint(request("line")) 
page=cint(request("page")) 
%> 
<%'---------------------------按使用者要求設定好顯示方式 
rs.PageSize=line 
rs.AbsolutePage=page 
%> 
<%'---------------------------顯示內容%> 
<table width="100%" border="1"> 
<tr> 
<%for i=0 to rs.Fields.Count-1%> 
<td><%=rs.Fields(i).name%></td> 
<%next%> 
</tr><%'-------以上部分顯示表頭,即欄位名%> 
<%for i=1 to rs.PageSize%> 
<tr> 
<%for j=0 to rs.Fields.Count-1%> 
<td><%=rs.Fields(j).value%></td> 
<%next%> 
</tr> 
<%rs.movenext%> 
<%if rs.eof then exit for%> 
<%next%><%'-------以上部分顯示表的內容%> 
</table> 

<%'---------------------------導航條%> 
<table width=100% ><tr> 
<td> 
<%if page<>1 then%> 
<a href=display.asp?page=1&line=<%=line%>>第一頁</a> 
<%else%>第一頁<%end if%> 

</td> 
<td> 
<%if page>1 then%> 
<a href=display.asp?page=<%=page-1%>&line=<%=line%>>前一頁</a> 
<%else%>前一頁<%end if%> 
</td> 
<td> 
<%if page<rs.PageCount then%> 
<a href=display.asp?page=<%=page+1%>&line=<%=line%>>下一頁 
<%else%>下一頁<%end if%> 
</td> 
<td> 
<%if page<>rs.PageCount then%> 
<a href=display.asp?page=<%=rs.PageCount%>&line=<%=line%>>最後一頁</a> 
<%else%>最後一頁<%end if%> 
</td><%'-------以上四項都需要進行判斷:如果在第一頁就不提供“第一頁”和“前一頁”的連結 
'-------如果在最後一頁就不提供“最後一頁”和“後一頁”的連結%> 
<td> 
<form method="POST" action="display.asp?line=<%=line%>"> 
請輸入頁碼:<input type="text" name="page" size="3" value="<%=page%>"> 
</form> 
</td> 
<td> 
<form method="POST" action="display.asp?page=<%=page%>"> 
請設定每頁<input type="text" name="line" size="3" value="<%=line%>">行 
</form> 
</td><%'-------因為兩個表單都只有一個表單域,所以沒有提供發送按鈕,直接打斷行符號就行了%> 
<td> 
第<%=page%>頁/總<%=rs.PageCount%>頁 
</td> 

</tr></table> 

  這隻是一個最基本的程式,沒有進行最佳化處理,也還有一些bug,下面我們一起來使它更“完美”一些。



相關文章

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 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。