经典的分页完整程序+注释
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>