ASP中关于帖子分页显示的基本方法
  在了解了Recordset对象的以上属性和方法后,我们来考虑一下,如何运用它们来达到我们分页显示的目的。首先,我们可以为PageSize属性设置一个值,从而指定从记录组中取出的构成一个页的行数;然后通过RecordCount属性来确定记录的总数;再用记录总数除以PageSize就可得到所显示的页面总数;最后通过AbsolutePage属性就能完成对指定页的访问。好象很并不复杂呀,下面让我们来看看程序该如何实现呢? 
  我们建立这样一个简单的BBS应用程序,它的数据库中分别有以下五个字段:“ID”,每个帖子的自动编号;“subject”,每个帖子的主题;“name”,加帖用户的姓名;“email”,用户的电子邮件地址;“postdate”,加帖的时间。数据库的DSN为“bbs”。我们将显示帖子分页的所有步骤放在一个名为“ShowList()”的过程中,方便调用。程序如下: 
’----BBS显示帖子分页---- 
< Sub ShowList() > 
< 
PgSz=20 ’设定开关,指定每一页所显示的帖子数目,默认为20帖一页 
Set Conn = Server.CreateObject("ADODB.Connection") 
Set RS = Server.CreateObject("ADODB.RecordSet") 
sql = "SELECT * FROM message order by ID
DESC" 
’查询所有帖子,并按帖子的ID倒序排列 
Conn.Open "bbs" 
RS.open sql,Conn,1,1 
If RS.RecordCount=0 then 
response.write "< P>< center>对不起,数据库中没有相关信息!< /center><
/P>" 
else 
RS.PageSize = Cint(PgSz) ’设定PageSize属性的值 
Total=INT(RS.recordcount / PgSz
* -1)*-1 ’计算可显示页面的总数 
PageNo=Request("pageno")
if PageNo="" Then 
PageNo = 1 
else 
PageNo=PageNo+1 
PageNo=PageNo-1 
end if 
ScrollAction = Request("ScrollAction")
if ScrollAction = " 上一页 " Then 
PageNo=PageNo-1 
end if 
if ScrollAction = " 下一页 " Then 
PageNo=PageNo+1 
end if 
if PageNo < 1 Then 
PageNo = 1 
end if 
n=1 
RS.AbsolutePage = PageNo 
Response.Write "< CENTER>" 
position=RS.PageSize*PageNo
pagebegin=position-RS.PageSize+1 
if position < RS.RecordCount then 
pagend=position 
else 
pagend= RS.RecordCount 
end if 
Response.Write "< P>< font color=’Navy’>< B>数 据 库 查 询 结 果:< /B>" 
Response.Write "(共有"&RS.RecordCount &"条符合条件的信息,显示"&pagebegin&"-"&pagend&")<
/font>< /p>" 
Response.Write "< TABLE WIDTH=600 BORDER=1
CELLPADDING=4 CELLSPACING=0 BGCOLOR=#FFFFFF>" 
Response.Write "< TR BGCOLOR=#5FB5E2 ><
FONT SIZE=2 >< TD >< B >主
题< /B >< /TD >< TD
>< B >用 户< /B >< /TD >< TD >< B >Email< /B
>< /TD >< TD >< B >发
布 日 期< /B >< /TD >< /FONT
>< TR BGCOLOR=#FFFFFF >"