相信一些初学者在看到这个标题的时候肯定还不是很明白到底什么翻页显示代码吧?这里我给大家解释以下何为翻页显示:将网页内容分N段,以“上一页下一页”等形式显示的效果就叫翻页显示。
下面列举几中比较常见的翻页显示效果:
1、
2、
这两种样式是比较常见的。一般用在内容的翻页和列表的翻页,如下图:
某旅游网站列表翻页显示
17173.com内容翻页显示
翻页的总要性我就不多说了,只要是网站就少不了翻页。因此网上也流传着很多翻页代码,但是对于放接触ASP的你来说,也许单纯的一段代码并不能给你带来方便,反而让你陷入头疼的烦恼。今天我就给大家详细说说列表翻页的实现过程。废话不多说,我们马上开始。
====================================================================================
一、PageSize、PageCount、AbsolutePage、RecordCount 介绍
想要学习翻页效果就必须先掌握4个属性。
首先我们先来介绍PageSize:它是Recrodset对象的一个属性(关于Recrodset对象请查阅相关手册),它的主要作用是控制每页显示记录的数量(默认值为10)。假设每页显示的记录20条(列表翻页的记录显示一半都为“行”),如下所示:
接下来再来了解一下PageCount:它与PageSize同属于Recrodset的一个属性,主要负责返回记录集包(比如我们从数据库调用了5条记录,这5条记录统称为记录集)含的总页数。记住:是总页数而不是总数,它的数值由PageSize控制,下面我们来举几个例子:
假设: 记录集=10 当 rs.pagesize=5 时 rs.pagecount=2 当 ra.pagesize=3 时 rs.pagecount=4 · · · |
下面我们来说说AbsolutePage:它主要的功能就是设置当前记录所在的页面。还是以上面的例子为例:
假设: 记录集=10 当 ra.pagesize=3 时 rs.pagecount=4 假设我们现在正在浏览第3页的内容 这时候的 rs.absolutepage=3 ==================================== 从上面的例子我们就很容易理解AbsolutePage的用途了。。 |
最后我们来认识一下RecordCount:它主要的任务就是计算出记录集的总数,它与PageCount的作用只相差一个字,但是返回的值却是完全不同的。还是回到上面的例子,其中提到的“记录集=10”其实就是“rs.recordcount=10”
前一段我们介绍了一下有关于翻页需要用的一些属性。经过前面的介绍我想应该都比较清楚了吧?废话不多说,我们今天来讲代码部分。
首先是建立一个数据库并且在数据库里添加几条记录(至于是几条就由你自己决定,这里主要是让大家看效果。),下面是我建立的一个数据库
数据库名:data.mdb 表名:News 字段:ID - 自动编号 Title - 文本 ' 用与记录文章标题 Time - 时间/日期 默认值date()' 存储文章内容 From - 文本 ' 文章出处 Writer - 文本 ' 作者 |
建立好数据库后,接着我们新建一个ASP文件,代码如下:(复制代码)
ASP文件名:index.asp <!--#include file="conn.asp"--> <!--连接数据库文件,代码就不详细写出来的。不懂的在留言--> <% dim ThisURL,ThisPage '定义变量 ThisURL="http://"&request.ServerVariables("SERVER_NAME")&request.ServerVariables("URL") '取得当前页URL if not isempty(request("page")) then '如果 传递过来的 page 值为空值 则 thispage = request("page") 'thispage 的值就是page的值 else '否则 thispage = 1 'thispage 的值为 1 end if '退出 set rs=server.createobject("adodb.recordset") sqlcmd="select * from news order by id" rs.open sqlcmd,conn,3,2,1 ' 打开news表 if rs.eof then '如果 news表没有记录 则 response.write ("没有添加内容") '输出"没有添加内容" end if '退出 rs.pagesize = 2 '由于数据库记录比较少,为了能看出效果,所以定义少一点。 rs.absolutepage = thispage '将thispage 转换成rs.absolutepage %> <html> <head> <title>列表翻页示例</title> </head> <style type="text/css"> bady{ font-size:12px; } .w760{ width:760px; text-align:center; } .head{ width:20%; float:left; height:25px; line-height:25px; background:#FFCCCC; } .content{ width:20%; float:left; height:25px; line-height:25px; border:1px dotted #FFCCCC; } .bottom{ height:30px; line-height:30px; border:1px dotted #FFCCCC; } .clear{ clear:both; } </style> <body> <div class="w760"> <div class="head">ID</div> <div class="head">标题</div> <div class="head">作者</div> <div class="head">出处</div> <div class="head">发布时间</div> <div class="clear"></div> <% for ipage=1 to rs.pagesize '循环从 1 到 rs.pagesize ,前面我们定义了rs.pagesize=2. if rs.eof then exit for '如果 表中没有记录 则退出循环,否则运行下面代码 %> <div class="content"><%=rs("id")%></div> <div class="content"><%=rs("title")%></div> <div class="content"><%=rs("writer")%></div> <div class="content"><%=rs("from")%></div> <div class="content"><%=rs("time")%></div> <div class="clear"></div> <% rs.movenext next %> <div class="bottom"> <!-- 下面显示页码,根据前面的文章我们不难理解下面的代码,这里就不再详细说明了. 代码开始 --> 页次:<%=thispage%>/<%=rs.pagecount%> <% for i=1 to rs.pagecount %> <a href="<%=thisURL%>?page=<%=i%>" target="_self">[<%=i%>]</a> <%next%> 共<%=rs.recordcount%>条信息 <!-- 代码结束 --> </div> </div> <% rs.close set rs=nothing conn.close set conn=nothing %> </body> </html>
|