WEB开发网
开发学院WEB开发ASP rs的pagesize属性 阅读

rs的pagesize属性

 2002-01-24 10:21:47 来源:WEB开发网   
核心提示:在了解了Recordset对象的以上属性和方法后,我们来考虑一下,rs的pagesize属性,如何运用它们来达到我们分页显示的目的,首先,指定每一页所显示的帖子数目,默认为20帖一页Set Conn = Server.CreateObject("ADODB.Connection")Set RS =
在了解了Recordset对象的以上属性和方法后,我们来考虑一下,如何运用它们来达到我们分页显示的目的。首先,我们可以为PageSize属性设置一个值,从而指定从记录组中取出的构成一个页的行数;然后通过RecordCount属性来确定记录的总数;再用记录总数除以PageSize就可得到所显示的页面总数;最后通过AbsolutePage属性就能完成对指定页的访问。好象很并不复杂呀,下面让我们来看看程序该如何实现呢?

子的自动编号;“s我们建立这样一个简单的BBS应用程序,它的数据库中分别有以下五个字段:“ID”,每个帖ubject”,每个帖子的主题;“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 %>

Tags:rs pagesize 属性

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接