经典的分页完整程序+注释

  在前面我们已经给大家讲了分页程序,在这里再给大家提供一个,分析一下也许有新的收获.

  

复制代码 代码如下:

  <%

  '以下程序是我的网站中的编程技术文章系统的部分代码,着重突出分页,因此其他无用代码被清除,您可修改后应用

  on error resume next    '防止用户随意修改网址造成错误

  if request.querystring("page")="" then page=1:else:page=cint(request.querystring("page"))   '的到网址中的页数 page=?

  set link1=server.createobject("ADODB.Connection") '连接数据库

  link1.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mappath("数据库1.mdb")

  set rs=server.createobject("adodb.recordset")

  rs.open "select * from 表1",link1,1,1       '这几句定义记录集的游标及每页存储的记录条数和当前页设定,很重要

  rs.pagesize=13

  rs.AbsolutePage=page

  if err.number<>0 then    '防止了用户恶意修改网址,和数据库无记录的错误

  response.write "出现异常错误"

  response.end

  end if

  %>

  <base target='_blank'><!--使内容在新窗口弹出-->

  <table border=1>

  <%

  for i=0 to rs.pagesize-1    '显示具体的数据内容了,i+(page*13-13)+1 这个解决分页后显示具体的编号

  if rs.eof then exit for

  response.write "<tr><Td>" & i+(page*13-13)+1 & ":<A href='" & rs("连接") & "'> & rs("作者") & "</a></td></tr>"

  rs.movenext

  next

  %>

  <tr><Td align=right>

  <base target='_top'><!--使分页连接不在新窗口弹出,以下是我要着重讲的完美分页程序的完整程序了,您可根据需要修改-->

  <%

  pagelen=split(request.ServerVariables("Query_String"),"&")    '得到网址 ?号 后面的参数网址

  if UBound(pagelen)<1 then      '如果网址是 xxx.asp?page=1 或 xxx.asp 类型的则用标准的分页方法

  if page>1 then response.write "<A href='a.asp?page=1'>首页</a> <a href='a.asp?page=" & page-1 & "'>上页</a> ":else:response.write "首页 上页 "

  if page<rs.pagecount then response.write "<a href='a.asp?page=" & page+1 & "'>下页</a> <a href='a.asp?page=" & rs.pagecount & "'>尾页</a> ":else:response.write "下页 尾页 "

  for i=1 to rs.pagecount

  if i=page then response.write i & " ":else:response.write "<A href='a.asp?page=" & i & "'>" & i & "</a> "

  next

  else          '如果网址是 xxx.asp?str1=参数&page=1 的类型则进行其他分页方法

  if page>1 then response.write "<A href='a.asp?" & pagelen(0) & "&page=1'>首页</a> <a href='a.asp?" & pagelen(0) & "&page=" & page-1 & "'>上页</a> ":else:response.write "首页 上页 "

  if page<rs.pagecount then response.write "<a href='a.asp?" & pagelen(0) & "&page=" & page+1 & "'>下页</a> <a href='a.asp?" & pagelen(0) & "&page=" & rs.pagecount & "'>尾页</a> ":else:response.write "下页 尾页 "

  for i=1 to rs.pagecount

  if i=page then response.write i & " ":else:response.write "<A href='a.asp?" & pagelen(0) & "&page=" & i & "'>" & i & "</a> "

  next

  end if           'pagelen(0)等于 str1=参数

  'pagelen(1)等于 page=1

  rs.close         '释放资源

  set rs=nothing

  set link1=nothing

  %>

  </table></body></html>