My FAQ,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > Web开发 > Asp > 应用范列
关于帖子分页显示的基本方法
作者:Yestar2000 时间:2001-11-11 11:01 出处:互联网 责编:MyFAQ
              摘要:关于帖子分页显示的基本方法

在了解了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>&nbsp;< /TD>
    < TD>< span style="font-size:9pt">< % =RS("postdate")%>< /span>&nbsp;< /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 %>

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 myfaq.com.cn All rights reserved. www.myfaq.com.cn 版权所有