分页控制
利用查询所得之资料要如何作分页呢?请指导一下吧!
下面我从PC-NET那边节录下来的,是由东东所撰写的
==============================================
如何做分页控制
很多网友都有自己开发線上讨论区和留言版的经验,也有的人一开始就使用别人开发好的程
式,但是有些人会因为别人开发的程式不够完美而兴起了想修改程式的念头,其中很多网友的
最大的问题就是不知道如何将资料库的资料作分页控制,大家看到很多简易型的讨论区和留
言版因为没有作分页控制造成使用者在阅读时的困扰,所以今天笔者将告诉大家如何完成这
项技巧,想当初笔者也是被这个问题烦了好一段时间,书上的范例又少之又少,所以希望今天
这个范例能带给大家一点小小的帮助,下面这段程式笔者仅带出显示资料和分页控制的程式
段,至於开启资料库的动作就交给大家去完成,假设这个程式叫做Devide.ASP
Devide.ASP
'由的按钮所传回来的Action参数来决定要往下一页还是回的按钮的话
<% If ACTION = "FORWARD" Then %>
先将目前所在页数加一
<% PAGE = PAGE + 1 %>
再将目前显示的资料笔数加10
<% RCOUNT = RCOUNT + HOWMANY %>
这边就有点技巧了,比如你是从第一页跳到第二页,你应该先将第1到第10笔资料略过
只显示第11笔到第20笔资料,因为原本在第一页的时候Rcount为0,加上10之後就等
於10,而这10笔资料就是你所要略过的,同样的,如果你是从第二页跳往第三页的话,
你必须略过第1笔到第20笔的资料,从第21笔资料开始显示
CmdShowEntries.MoveNext就是在执行这个略过的动作
<% For DACOUNT = 1 To RCOUNT %>
<% CmdShowEntries.MoveNext %>
<% Next %>
<% End If %>
相反的如果是回的按钮囉
<div align="left"><left>
<table border="0" width="400">
<tr>
<td width="200"><% If RCOUNT > 0 Then %>如果不是在第一页
就显示的按钮,並将预设的参数传回
<form method="PUT" action="Devide.ASP">
<input type="hidden" name="ACTION" value="FORWARD">
<input type="hidden" name="RCOUNT" value="<% =RCOUNT %>">
<input type="hidden" name="PAGE" value="<% =PAGE %>">
<p><font face="Arial"><input type=image src=../../images/next.gif
onclick="submit">
</font></p>
</form>
<% End If %>
</td>
</tr>
</table>
怎麽样大家懂了吗?
其实分页控制方式有很多种,笔者只是拿这个简单的例子来作示范,应为我觉得这个范
例最容易理解而且弹性又大,比如说你今天还想多加几个按钮,像是回第一页,到最後
一页,你可以这样写
<form method="PUT" action="Devide.ASP">
<input type="hidden" name="ACTION" value="LAST">
<input type="hidden" name="RCOUNT"
value="<% =(CmdShowEntries.PageCount - 1)*10%>">
<input type="hidden" name="PAGE"
value="<% =CmdShowEntries.PageCount%>">
<p><font face="Arial"><input type="submit" value="最末页">
</font></p></form>
<% End If %> </td>
<td width="200">
<form method="PUT" action="Devide.ASP">
<input type="hidden" name="RCOUNT" value="0">
<input type="hidden" name="PAGE" value="1">
<p><font face="Arial"><input type="submit&qu