简单的ASP分页代码(测试正确)

时间:2021-08-02 01:34:48

本文匆匆已经全面测试,支持ASP+ACCESS以及ASP+SQL,请修改相关部分就可以了。

注意,匆匆谢绝基础问题回答,已经本代码已经很简单,如果还不懂可以参阅本站其他栏目。

  1. <!--#include file="conn.asp"-->  
  2. <% '以上为包含数据库衔接文件  
  3. '--------------------------------------------查询开始数据库  
  4.  
  5. set rs=server.CreateObject("adodb.recordset")  
  6. rs.open "select * from books where id="&id&" order by id desc",conn,1,1  
  7. if err.number<>0 then  
  8. response.write "数据库中无数据"  
  9. end if  
  10.  
  11. '------------------------------------------分页开始  
  12. if rs.recordcount=0 then     
  13. respose.write "没有数据"  
  14. else  
  15. rs.PageSize =10 '每页记录条数  
  16. iCount=rs.RecordCount '记录总数  
  17. iPageSize=rs.PageSize  
  18. maxpage=rs.PageCount   
  19. page=request("page")  
  20.  
  21.     if Not IsNumeric(page) or page="" then  
  22.         page=1  
  23.     else  
  24.         page=cint(page)  
  25.     end if  
  26.  
  27.     if page<1 then  
  28.         page=1  
  29.     elseif  page>maxpage then  
  30.         page=maxpage  
  31.     end if  
  32.  
  33.     rs.AbsolutePage=Page  
  34.  
  35.  if page=maxpage then  
  36.   x=iCount-(maxpage-1)*iPageSize  
  37.  else  
  38.   x=iPageSize  
  39.  end if  
  40.  
  41. For i=1 To x  
  42.  
  43.  
  44. '根据实际从库中获得数据并显示数据  
  45. '-------------------------------------------  
  46.  
  47. 'data=rs("data")  
  48. 'response.write"DATA:"&data  
  49.  
  50. '-------------------------------------------  
  51.  
  52. rs.movenext  
  53.   next  
  54.   call PageControl(iCount,maxpage,page,"border=0 align=center","<p align=center>")  
  55.   end if  
  56.   rs.close  
  57.   set rs=nothing  
  58.  
  59. Sub PageControl(iCount,pagecount,page,table_style,font_style)  
  60.     '生成上一页下一页链接  
  61.     Dim query, a, x, temp  
  62.     action = "http://" & Request.ServerVariables("HTTP_HOST") & Request.ServerVariables("SCRIPT_NAME")  
  63.  
  64.     query = Split(Request.ServerVariables("QUERY_STRING"), "&")  
  65.     For Each x In query  
  66.         a = Split(x, "=")  
  67.         If StrComp(a(0), "page", vbTextCompare) <> 0 Then  
  68.             temp = temp & a(0) & "=" & a(1) & "&"  
  69.         End If  
  70.     Next  
  71.  
  72.     Response.Write("<table width=100% border=0 cellpadding=0 cellspacing=0 bgcolor=#f1f1f1>" & vbCrLf )          
  73.     Response.Write("<form method=get onsubmit=""document.location = '" & action & "?" & temp & "Page='+ this.page.value;return false;""><TR bgcolor=#f1f1f1>" & vbCrLf )  
  74.     Response.Write("<TD align=center height=35>" & vbCrLf )  
  75.     Response.Write(font_style & vbCrLf )      
  76.  
  77.     if page<=1 then  
  78.         Response.Write ("首 页 " & vbCrLf)          
  79.         Response.Write ("上一页 " & vbCrLf)  
  80.     else          
  81.         Response.Write("<A HREF=" & action & "?" & temp & "Page=1>首 页</A> " & vbCrLf)  
  82.         Response.Write("<A HREF=" & action & "?" & temp & "Page=" & (Page-1) & ">上一页</A> " & vbCrLf)  
  83.     end if  
  84.  
  85.     if page>=pagecount then  
  86.         Response.Write ("下一页 " & vbCrLf)  
  87.         Response.Write ("尾 页 " & vbCrLf)              
  88.     else  
  89.         Response.Write("<A HREF=" & action & "?" & temp & "Page=" & (Page+1) & ">下一页</A> " & vbCrLf)  
  90.         Response.Write("<A HREF=" & action & "?" & temp & "Page=" & pagecount & ">尾 页</A> " & vbCrLf)              
  91.     end if  
  92.  
  93.     Response.Write(" 页次:" & page & "/" & pageCount & "页" &  vbCrLf)  
  94.     Response.Write(" 共有" & iCount & "个记录" &  vbCrLf)  
  95.     Response.Write(" 转到" & "<INPUT CLASS=wenbenkuang TYEP=TEXT NAME=page SIZE=2 Maxlength=5 VALUE=" & page & ">" & "页"  & vbCrLf & "<INPUT CLASS=go-wenbenkuang type=submit value=GO>")  
  96.     Response.Write("</TD>" & vbCrLf )                  
  97.     Response.Write("</TR></form>" & vbCrLf )          
  98.     Response.Write("</table>" & vbCrLf )          
  99. End Sub  
  100. %>  

本代码绝对无错!