近段时间看了一些论坛上面关于分页的ASP程序依然有许多的关注者但里面只有代码没有详细的解释对于初学者来说这样总是得不到真正的掌握此次我将针对分页技术进行详解让大家来理解ASP分页好了一起来对分页程序来次透彻的了解吧!
首先来看看效果 !
看看功能分页程序首先读取每页预置的记录条数在此是条其它将在下页中显示同时提示当前页数总页数总记录数当显示的页数为第一页时首页上一页链接失效当显示的页数为最后页时下一页尾页链接失效
接下来以实例的方式告诉大家怎么一步步的做出这种分页效果
首先数据库中字段record_info存在于info表中(实例下载中有数据库)先链接数据库并将一个记录集打开以下代码
<%
Set conn=ServerCreateObject(AdodbConnection)
connstr=provider=MicrosoftJETOLEDB;Data Source=&ServerMapPath(datamdb)
connopen connstr
Set rs=ServerCreateObject(AdodbRecordset)
sql=Select * from info
rsopen sqlconn
%>
这段代码不详解相信初入门的都会具体的解释可以看看《手把手教你用ASP做留言本》教程
接下来这是分页中比较重要的部分了了三行而已
<%
rspagesize=
curpage=RequestQueryString(curpage)
rsabsolutepage=curpage
%>
第二句
rspagesize=这个什么意思呢?它就是在Recordset对象中的一个内置属性它的作用是指定每页的记录条数设置为时每条记录放在一起成一页比如实例中共有条记录那么使用rspagesize分页后这条记录将分成页进行显示
第三句
这里主要是用于翻页的功能将URL的post参数curpage传递给curpage变量这个curpage将得到浏览者想要到达的页数(运行一下实例就会明白)
第四句
rsabsolutepage这个也是个内置的属性它代表的意思就是将curpage变量的数值指定为当前页
现在开始可以让记录循环显示了
<%
for i= to rspagesize
if rseof then
exit for
end if
%>
<%=rs(record_info)%><br>
<%
rsmovenext
next
%>
第二句
利用for循环在每页显示rspagesize属性中指定的记录数
第三四五句
这句意思是当最后一页达不到指定记录时就退出循环以免出错
第七句
绑定从数据库取出的record_info字段就是叫这字段内的记录循环显示的
第九句
用rsmovenext方法将rs记录集往下移一条记录
第十句
for循环语句
另外可以用<%=curpage%>读出当前页次用<%=rspagecount%>读出总页数用<%=rsrecordcount%>读出总记录数例如当前第<%=curpage%>页共有<%=rspagecount%>页共有<%=rsrecordcount%>条记录
在显示首页上页下页尾页功能上采用了ifelse语句比较好懂
<%if curpage= then%>
首页
<%else%>
<a >首页</a>
<%end if%>
<%if curpage= then%>
上一页
<%else%>
<a ?curpage=<%=curpage%>>上一页</a>
<%end if%>
<%if rspagecount<curpage+ then%>
下一页
<%else%>
<a ?curpage=<%=curpage+%>>下一页</a>
<%end if%>
<%if rspagecount<curpage+ then%>
尾页
<%else%>
<a ?curpage=<%=rspagecount%>>尾页</a>
<%end if%>
理解一下
首页
这个使用当前页是否为第一页时判别如果当前为第一页(也就是首页)那么显示首页两字没有链接否则提供直接跳转到首页的链接
上一页
当前为第一页时链接失效反过来链接到当前面的上一页这里使用<%=curpage%>就是用当前的页数减去得到上一页
下一页
这里需要使用rspagecount这个属性来比较假如总页数小于当前页数加的值那表明这就是第后一页链接将失效否则链接到下一页
尾页
和下一页的功能一样判定出是最后页时链接失效否则将当前页指定为rspagecount(总页数)