ASP分页祥解
关于ASP分页的问题,对于初学者是一个比较重要的
问题,也是各个网站运用最为广泛的技术,下面我就把我总结的一点小经验介绍给大家(写的不好,请大家指点)
1.原理:ASP分页其实是将数据库中的记录分割成若干段“分屏显示”
,为什么叫“分屏显示”显示,因为其实显示的原始页面只有1页,通过控制数据库显示,来刷新页面的显示内容(可能一些朋友会误会为动态产生若干页面来显示,呵呵,我刚刚学的时候也是这样以为的)
2.用到的几个函数
rs.pagesize--->定义一页显示记录的条数
rs.recordcount--->统计记录总数
rs.pagecount---->统计总页数
这几个函数相信大家都很快就明白意识了,不过还有一个函数它的用法可能理解起来难一点
rs.absolutepage--->将数据库指针移动到当前页要显示的数据记录的第一条记录,比如有20条记录的一个数据库,我们分为10条记录显示一页,当你的页面为2时,通过使用rs.absolutepage将指针移动到第11条记录处,依次类推....
3.大家明白原理后我们开始来看一段分页的
程序,其中的一些文件我就不一一详细讲解了,不明白的朋友可以先看
ttzsw/ArticleShow.asp?ArticleID=357
--------------------------------------------------
<%
dim m,n
set rs=server.CreateObject("adodb.recordset")
sqlstr="select * from message order by time desc"
rs.open
sqlstr,conn,3,3
rs.pagesize=10 '定义一页显示的记录数目
tatalrecord=rs.recordcount '获取记录总数目
tatalpages=rs.pagecount '获取分页的数目
rs.movefirst
----------------------------
nowpage=request("page") '用request获取当前页数,注意page是自己定义的变量并非函数
--------------------------
if nowpage&;"x"="x" then '处理页码为空时的情况
nowpage=1
else
nowpage=cint(nowpage) '将页码转换成数字型
end if
--------------------------------
rs.absolutepage=nowpage '将指针移动到当前显示页的第一条记录
-------------------------------
%>
---------------------------------------------
<%
n=1
while not rs.eof and n<=rs.pagesize
response.Write(rs("user") &; "
")
response.Write(rs("tt") &; "
")
n=n+1
rs.movenext '显示页面的数据
wend
%>
-------------------------------------------
共:<%=tatalpages%>页 当前为:<%=nowpage%>页
<%if nowpage>1 then%>
上一页 <%else%>
上一页
<%end if%>
<%for k=1 to tatalpages%>
<%if k<>nowpage then %>
<%=k%> <%else%>
<%=k%>
<%end if%>
<%next%>
<%if nowpage < tatalpages then%>
下一页 <%else%>
下一页
<%end if%> '加上页码
连接
<%if nowpage<>1 then%>
首页 <%else%>
首页
<%end if%>
<%if nowpage<>tatalpages then %>
末页 <%else%>
末页
<%end if%>
------------------------------------------------
这样一个分页的就OK了