经典的分页完整程序+注释
2018-09-06 12:24
在前面我们已经给大家讲了分页程序,在这里再给大家提供一个,分析一下也许有新的收获.
复制代码 代码如下:
<%
以下程序是我的网站中的编程技术文章系统的部分代码,着重突出分页,因此其他无用代码被清除,您可修改后应用
onerrorresumenext防止用户随意修改网址造成错误
ifrequest.querystring(page)=thenpage=1:else:page=cint(request.querystring(page))的到网址中的页数page=?
link1.openProvider=Microsoft.Jet.OLEDB.4.0;DataSource=&server.mappath(数据库1.mdb)
setrs=server.createobject(adodb.recordset)
rs.openselect*from表1,link1,1,1这几句定义记录集的游标及每页存储的记录条数和当前页设定,很重要
rs.pagesize=13
rs.AbsolutePage=page
iferr.number<>0then防止了用户恶意修改网址,和数据库无记录的错误
response.write出现异常错误
response.end
endif
%>
<base><!--使内容在新窗口弹出-->
<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
endifpagelen(0)等于str1=参数
pagelen(1)等于page=1
rs.close释放资源
setrs=nothing
setlink1=nothing
%>
</table></body></html>