先我们来理解一下原理
首页:
这个使用当前页是否为第一页时判别,如果当前为第一页(也就是首页),那么显示首页两字,没有链接,否则提供直接跳转到首页的链接。
上一页:
当前为第一页时,链接失效,反过来,链接到当前面的上一页,这里使用:<%=curpage-1%>,就是用当前的页数减去1,得到上一页。
下一页:
这里需要使用rs.pagecount这个属性来比较,假如总页数小于当前页数加1的值,那表明这就是第后一页,链接将失效,否则链接到下一页。
尾页:
和下一页的功能一样判定出是最后页时链接失效,否则将当前页指定为rs.pagecount(总页数)。
知道上面的东西了,我们就可以根据要求进行分页代码了。
在需要显示页码的页面:
实例1
代码如下 |
复制代码 |
page=cint(request("page")) 'page是url中页码的参数
querys="..." '定义url的其他参数
rs.PageSize=30 '每页条数,自己设定
dim pagecount=rs.PageCount
rs.AbsolutePage=pageno
if pagecount>1 then
response.write("分页: ")
outpages pagecount,page ''''''此处'显示页码,函数见后
response.write "
"
end if
dim showcount=0
do while (not rs.eof and showcount
显示每条内容
showcount=showcount+1
rs.movenext
loop
|
'以下为显示页码的函数,可单独放在一个文件中:
代码如下 |
复制代码 |
sub outpages(pagecount,curpage)
yyy=int((curpage-1)/10)
startno=yyy*10+1
endno=startno+10-1
if startno<1 then startno=1
if endno>pagecount then endno=pagecount
response.write ""
if startno>1 then
response.write " << "
end if
for j=startno to endno
if j=page then
response.write " "&j&" "
else
response.write " ["&j&"] "
end if
next
if pagecount>endno then
response.write " >>"
end if
response.write ""
end sub
|
实例2
代码如下 |
复制代码 |
<%
set conn=server.createobject("adodb.connection")
conn.open("DRIVER=Driver do Microsoft Access (*.mdb);UID=admin;pwd=;dbq="&server.mappath("1.mdb"))
set rs=server.createobject("adodb.recordset")
sql="select * from student"
rs.open sql,conn,3
rs.pagesize=20
if request("page")<>"" then
epage=cint(request("page"))
if epage<1 then epage=1
if epage>rs.pagecount then epage=rs.pagecount
else
epage=1
end if
rs.absolutepage=epage
%>
<%=rs(0).name%> | <%=rs(1).name%> | <%=rs(2).name%> |
---|
<%
for i=0 to rs.pagesize-1
if rs.bof or rs.eof then exit for
%>
<%=rs(0).value%> | <%=rs(1).value%> | <%=rs(2).value%> |
<%
rs.movenext()
next
%>
首页
前一页
后一页
末页
现在是第<%=epage%>页一共有<%=rs.pagecount%>页
<%
conn.close()
%>
|
表有三个字段,表明为student其他的就不需要改了,那个pagesize也可以改一下,如果记录少的话.
在asp中实现分页有几个关键的命令
代码如下 |
复制代码 |
rs.PageSize=30 '每页条数,自己设定
dim pagecount=rs.PageCount
rs.AbsolutePage=pageno
|
这三个是我们asp中分页必须用到的,否则你的分页就不会成功哦,这也是asp的短板了让人摸不差头脑的做法。