控件中国网现已改版,您看到的是老版本网站的镜像,系统正在为您跳转到新网站首页,请稍候.......
中国最专业的商业控件资讯网产品咨询电话:023-67870900 023-67871946
产品咨询EMAIL:SALES@COMPONENTCN.COM

ASP中关于帖子分页显示的基本方法

作者:未知 出处:不详 2010年01月27日 阅读:

在了解了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 >" 

Do while not (RS is nothing) 

RowCount = RS.PageSize 

Do While Not RS.EOF and rowcount > 0 

If n=1 then 

Response.Write "< TR BGCOLOR=#FFFFFF>" 

ELSE 

Response.Write "< TR BGCOLOR=#EEEEEE>" 

End If 

n=1-n > 

< TD>< span style="font-size:9pt">< A href=’view.asp?key=< =RS("ID")>’>< =RS("subject")>< /A>< /span>< /td> 

< TD>< span style="font-size:9pt">< =RS("name")>< /A>< /span>< /td> 

< TD>< span style="font-size:9pt">< a href="mailto:< =RS("email")>">< =RS("email")>< /a>< /span> < /TD> 

< TD>< span style="font-size:9pt">< =RS("postdate")>< /span> < /td> 

< /TR> 

RowCount = RowCount - 1 

RS.MoveNext 

Loop 

set RS = RS.NextRecordSet 

Loop 

Conn.Close 

set rs = nothing 

set Conn = nothing 

< /TABLE > 

< FORM METHOD=GET ACTION="list.asp" > 

< INPUT TYPE="HIDDEN" NAME="pageno" VALUE="< =PageNo >" > 

if PageNo > 1 Then 

response.write "< INPUT TYPE=SUBMIT NAME=’ScrollAction’ VALUE=’ 上一页 ’>" 

end if 

if RowCount = 0 and PageNo < >Total then 

response.write "< INPUT TYPE=SUBMIT NAME=’ScrollAction’ VALUE=’ 下一页 ’>" 

end if 

response.write "< /FORM>" 

End if 

< End Sub %>

                                                     【注:本文由控件中国网转载】

热推产品

  • ActiveReport... 强大的.NET报表设计、浏览、打印、转换控件,可以同时用于WindowsForms谀坔攀戀Forms平台下......
  • AnyChart AnyChart使你可以创建出绚丽的交互式的Flash和HTML5的图表和仪表控件。可以用于仪表盘的创......
首页 | 新闻中心 | 产品中心 | 技术文档 | 友情连接 | 关于磐岩 | 技术支持中心 | 联系我们 | 帮助中心 Copyright-2006 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 电话:023 - 67870900 传真:023 - 67870270 产品咨询:sales@componentcn.com 渝ICP备12000264号 法律顾问:元炳律师事务所 重庆市江北区塔坪36号维丰创意绿苑A座28-5 邮编:400020
在线客服
在线客服系统
在线客服
在线客服系统