|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
在了解了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 %> 返回类别: 教程 上一教程: 随机数字直接生成图片的ASP代码 下一教程: 如何用ASP动态生成XML文件 您可以阅读与"RS的PAGESIZE属性"相关的教程: · 也谈ASP中的RESPONSE属性 · ADODB.STREAM对象的方式/属性 · 调试JS用的对象属性显示器 · 使用索引服务器 - 增加属性 · 用ASP+XMLHTTP实现RSSREADER功能 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |