大家好我是成龙,很高兴又和大家见面了,今天讨论的是“另一中分页的实现方法”
目前,大多数asp书中介绍的分页都是将所有的页面的编号都罗列出来,大家可想而知,如果页面很多的话整个页面的大部分的内容将被页号代替,非常难看,也许有的人会说,我把pagesize设置的大一些不就可以了吗?不错,这是一种解决的方案,但是笔者并不推荐,我想不会又哪一位浏览者能够耐心的拖动滚动条来找他需要的信息吧
下面笔者介绍的是大多数bbs里面运用的分页显示的方案,即具有:首页,前一页,后一页,尾页和跳转到对话框的超级链接
下面即使具体的实现方法了
<html>
<head>
<title> jackie's divding page</title>
</head>
<body>
<% .....open database...
sqlstmt="select......"
mypage=request.querystring("whichpage")
if mypage="" then
mypage=1
end if
set rs=server.creatobject("adodb.recordset")
rs.open sqlstmt,conn,adopenstatic
rs.movefirst
'取出页面总数
maxcount=cint(rs.pagecount)
rs.absolutepage=mypage
%>
.........显示页面的信息。。。(略)
<% scriptname=request.servervaribles("script.name")
currentpage=cint(rs.absolutepage)
lastpage=cint(rs.pagecount)
if currentpage<>1 or currentpage<>lastpage then
%>
<a href="<%=scriptname%>?whichpage=1">首页</a>
<a href="<%=scriptname%>?whichpage=<%=currentpage-1%>前一页</a>
<a href="<%=scriptname%>?whichpage=<%=currentpage+1%>后一页</a>
<a href="<%=scriptname%>?whichpage=<%=lastpage%>尾页</a>
<form action=<%=scriptname%>>
< input type="text" name="whichpage" size=3>
<input type="submit" value="go">
</form>
'后面就是如果判断是第一页或者是最后一页的语句了
'如果是第一页
<%else if currentpage=1 then%>
首页 前一页
<a href="<%=scriptname%>?whichpage=<%=currentpage+1%>后一页</a>
<a href="<%=scriptname%>?whichpage=<%=lastpage%>尾页</a>
<form action=<%=scriptname%>>
< input type="text" name="whichpage" size=3>
<input type="submit" value="go">
</form>
‘如果是尾页的话
<a href="<%=scriptname%>?whichpage=1">首页</a>
<a href="<%=scriptname%>?whichpage=<%=currentpage-1%>前一页</a>
后一页 尾页
< input type="text" name="whichpage" size=3>
<input type="submit" value="go">
</form>
<%else
response.redirect scriptname&"?whichpage=1"
endif%>
</body>
</html>
这个分页的程序大体上就是这样了,不过有一点的不足就是提交有关页面的表单没有对输入的非数字的信息进行处理,在这里就不做介绍了,有兴趣的朋友可以自己加上相应的处理。
注:由于最近一段时间机器不在身边,上面的代码并没有调试,我是在网吧里面用写字板写的,可能上面的代码会有一些错误,但是笔者写这篇文章的目的是给那些初学asp的朋友们提供另一种思路。