在前面我们已经给大家讲了分页程序,在这里再给大家提供一个,分析一下也许有新的收获.
复制代码 代码如下:
<%
'以下程序是我的网站中的编程技术文章系统的部分代码,着重突出分页,因此其他无用代码被清除,您可修改后应用
onerrorresumenext'防止用户随意修改网址造成错误
ifrequest.querystring("page")=""thenpage=1:else:page=cint(request.querystring("page"))'的到网址中的页数page=?
setlink1=server.createobject("ADODB.Connection")'连接数据库
link1.open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&server.mappath("数据库1.mdb")
setrs=server.createobject("adodb.recordset")
rs.open"select*from表1",link1,1,1'这几句定义记录集的游标及每页存储的记录条数和当前页设定,很重要
rs.pagesize=13
rs.AbsolutePage=page
iferr.number<>0then'防止了用户恶意修改网址,和数据库无记录的错误
response.write"出现异常错误"
response.end
endif
%>
<basetarget='_blank'><>
<tableborder=1>
<%
fori=0tors.pagesize-1'显示具体的数据内容了,i+(page*13-13)+1这个解决分页后显示具体的编号
ifrs.eofthenexitfor
response.write"<tr><Td>"&i+(page*13-13)+1&":<Ahref='"&rs("连接")&"'>&rs("作者")&"</a></td></tr>"
rs.movenext
next
%>
<tr><Tdalign=right>
<basetarget='_top'><>
<%
pagelen=split(request.ServerVariables("Query_String"),"&")'得到网址?号后面的参数网址
ifUBound(pagelen)<1then'如果网址是xxx.asp?page=1或xxx.asp类型的则用标准的分页方法
ifpage>1thenresponse.write"<Ahref='a.asp?page=1'>首页</a><ahref='a.asp?page="&page-1&"'>上页</a>":else:response.write"首页上页"
ifpage<rs.pagecountthenresponse.write"<ahref='a.asp?page="&page+1&"'>下页</a><ahref='a.asp?page="&rs.pagecount&"'>尾页</a>":else:response.write"下页尾页"
fori=1tors.pagecount
ifi=pagethenresponse.writei&"":else:response.write"<Ahref='a.asp?page="&i&"'>"&i&"</a>"
next
else'如果网址是xxx.asp?str1=参数&page=1的类型则进行其他分页方法
ifpage>1thenresponse.write"<Ahref='a.asp?"&pagelen(0)&"&page=1'>首页</a><ahref='a.asp?"&pagelen(0)&"&page="&page-1&"'>上页</a>":else:response.write"首页上页"
ifpage<rs.pagecountthenresponse.write"<ahref='a.asp?"&pagelen(0)&"&page="&page+1&"'>下页</a><ahref='a.asp?"&pagelen(0)&"&page="&rs.pagecount&"'>尾页</a>":else:response.write"下页尾页"
fori=1tors.pagecount
ifi=pagethenresponse.writei&"":else:response.write"<Ahref='a.asp?"&pagelen(0)&"&page="&i&"'>"&i&"</a>"
next
endif'pagelen(0)等于str1=参数
'pagelen(1)等于page=1
rs.close'释放资源
setrs=nothing
setlink1=nothing
%>
</table></body></html>