asp分頁技術詳解講解(上一頁/下一頁)

來源:互聯網
上載者:User

先我們來理解一下原理

首頁:

這個使用當前頁是否為第一頁時判別,如果當前為第一頁(也就是首頁),那麼顯示首頁兩字,沒有連結,否則提供直接跳轉到首頁的連結。
 
上一頁:

當前為第一頁時,連結失效,反過來,連結到當前面的上一頁,這裡使用:<%=curpage-1%>,就是用當前的頁數減去1,得到上一頁。
 
下一頁:

這裡需要使用rs.pagecount這個屬性來比較,假如總頁數小於當前頁數加1的值,那表明這就是第後一頁,連結將失效,否則連結到下一頁。

尾頁:

和下一頁的功能一樣判定出是最後頁時連結失效,否則將當前頁指定為rs.pagecount(總頁數)。

知道上面的東西了,我們就可以根據要求進行分頁代碼了。


在需要顯示頁碼的頁面:

執行個體1

 代碼如下 複製代碼

page=cint(request("page")) 'page是url中頁碼的參數
querys="..."  '定義url的其他參數


rs.PageSize=30 '每頁條數,自己設定
dim pagecount=rs.PageCount
rs.AbsolutePage=pageno

if pagecount>1 then
response.write("分頁: ")
outpages pagecount,page ''''''此處'顯示頁碼,函數見後
response.write "<br><br>"
end if


dim showcount=0
do while (not rs.eof and showcount<rs.PageSize )
   顯示每條內容
   showcount=showcount+1
rs.movenext
loop

 

'以下為顯示頁碼的函數,可單獨放在一個檔案中:

 代碼如下 複製代碼

sub outpages(pagecount,curpage)

 yyy=int((curpage-1)/10)
 startno=yyy*10+1
 endno=startno+10-1


 if startno<1 then startno=1
 if endno>pagecount then endno=pagecount

 response.write "<b>"

 if startno>1 then
  response.write "&nbsp;&nbsp;<a target=_top  href=?"&querys&"&page="&(startno-10)&"><<</a>&nbsp;&nbsp;"
 end if


 for j=startno to endno
  if j=page then
   response.write " "&j&"&nbsp;&nbsp;"
  else
   response.write " <a target=_top href='"
   response.write "?"&querys&"&page="&j
   response.write "'>["&j&"]</a>&nbsp;&nbsp;"
  end if
 next


 if pagecount>endno then
  response.write "&nbsp;&nbsp;<a target=_top href=?"&querys&"&page="&(endno+1)&">>></a>"
 end if

 response.write "</b>"

end sub

執行個體2

 代碼如下 複製代碼

<%
set conn=server.createobject("adodb.connection")
conn.open("DRIVER=Driver do Microsoft Access (*.mdb);UID=admin;pwd=;dbq="&server.mappath("1.mdb"))
set rs=server.createobject("adodb.recordset")
sql="select * from student"
rs.open sql,conn,3
rs.pagesize=20
if request("page")<>"" then
  epage=cint(request("page"))
   if epage<1 then epage=1
   if epage>rs.pagecount then epage=rs.pagecount
else
epage=1
end if
rs.absolutepage=epage
%>
<table border="0" cellpadding="0" cellspacing="1" bgcolor="#0000FF" width="80%" align="center">
<tr bgcolor="#FFFFFF" align="center">
<th><%=rs(0).name%></th><th><%=rs(1).name%></th><th><%=rs(2).name%></th>
</tr>
<%
for i=0 to rs.pagesize-1
if rs.bof or rs.eof then exit for
%>
<tr bgcolor="#FFFFFF" align="center">
<td><%=rs(0).value%></td><td><%=rs(1).value%></td><td><%=rs(2).value%></td>
</tr>
<%
rs.movenext()
next
%>
</table>
<p align="center">
<a href="">首頁</a>&nbsp;
<a href="index.asp?page=<%=epage-1%>">前一頁</a>&nbsp;
<a href="index.asp?page=<%=epage+1%>">後一頁</a>&nbsp;
<a href="index.asp?page=<%=rs.pagecount%>">末頁</a>
</p>
<p align="center">現在是第<%=epage%>頁一共有<%=rs.pagecount%>頁</p>
<%
conn.close()
%>


表有三個欄位,表明為student其他的就不需要改了,那個pagesize也可以改一下,如果記錄少的話.

在asp中實現分頁有幾個關鍵的命令

 代碼如下 複製代碼
rs.PageSize=30 '每頁條數,自己設定
dim pagecount=rs.PageCount
rs.AbsolutePage=pageno

這三個是我們asp中分頁必須用到的,否則你的分頁就不會成功哦,這也是asp的短板了讓人摸不差頭腦的做法。

聯繫我們

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

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

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.