先我們來理解一下原理
首頁:
這個使用當前頁是否為第一頁時判別,如果當前為第一頁(也就是首頁),那麼顯示首頁兩字,沒有連結,否則提供直接跳轉到首頁的連結。
上一頁:
當前為第一頁時,連結失效,反過來,連結到當前面的上一頁,這裡使用:<%=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 " <a target=_top href=?"&querys&"&page="&(startno-10)&"><<</a> " end if for j=startno to endno if j=page then response.write " "&j&" " else response.write " <a target=_top href='" response.write "?"&querys&"&page="&j response.write "'>["&j&"]</a> " end if next
if pagecount>endno then response.write " <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> <a href="index.asp?page=<%=epage-1%>">前一頁</a> <a href="index.asp?page=<%=epage+1%>">後一頁</a> <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的短板了讓人摸不差頭腦的做法。