当前位置:编程学习 > asp >>

asp分页技术详解讲解(上一页/下一页)

先我们来理解一下原理

首页:

这个使用当前页是否为第一页时判别,如果当前为第一页(也就是首页),那么显示首页两字,没有链接,否则提供直接跳转到首页的链接。
 
上一页:

当前为第一页时,链接失效,反过来,链接到当前面的上一页,这里使用:<%=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 "<br><br>"
end if


dim showcount=0
do while (not rs.eof and showcount<rs.PageSize )
   显示每条内容
   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 "<b>"

 if startno>1 then
  response.write "  <a target=_top  href=?"&querys&"&page="&(startno-10)&"><<</a>  "
 end if


 for j=startno to endno
  if j=page then
   response.write " "&j&"  "
  else
   response.write " <a target=_top href='"
   response.write "?"&querys&"&page="&j
   response.write "'>["&j&"]</a>  "
  end if
 next


 if pagecount>endno then
  response.write "  <a target=_top href=?"&querys&"&page="&(endno+1)&">>></a>"
 end if

 response.write "</b>"

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
%>
<table border="0" cellpadding="0" cellspacing="1" bgcolor="#0000FF" width="80%" align="center">
<tr bgcolor="#FFFFFF" align="center">
<th><%=rs(0).name%></th><th><%=rs(1).name%></th><th><%=rs(2).name%></th>
</tr>
<%
for i=0 to rs.pagesize-1
if rs.bof or rs.eof then exit for
%>
<tr bgcolor="#FFFFFF" align="center">
<td><%=rs(0).value%></td><td><%=rs(1).value%></td><td><%=rs(2).value%></td>
</tr>
<%
rs.movenext()
next
%>
</table>
<p align="center">
<a href="">首页</a> 
<a href="index.asp?page=<%=epage-1%>">前一页</a> 
<a href="index.asp?page=<%=epage+1%>">后一页</a> 
<a href="index.asp?page=<%=rs.pagecount%>">末页</a>
</p>
<p align="center">现在是第<%=epage%>页一共有<%=rs.pagecount%>页</p>
<%
conn.close()
%>


表有三个字段,表明为student其他的就不需要改了,那个pagesize也可以改一下,如果记录少的话.

在asp中实现分页有几个关键的命令

 代码如下 复制代码
rs.PageSize=30 '每页条数,自己设定
dim pagecount=rs.PageCount
rs.AbsolutePage=pageno

这三个是我们asp中分页必须用到的,否则你的分页就不会成功哦,这也是asp的短板了让人摸不差头脑的做法。

补充:asp教程,技巧与性能优化
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,