|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp可以使用微软的activeX使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般ASP中关于帖子分页显现的基础办法
在懂得了Recordset工具的以上属性和办法后,我们来思索一下,怎样使用它们来到达我们分页显现的目标。起首,我们能够为PageSize属性设置一个值,从而指定从纪录组中掏出的组成一个页的行数;然后经由过程RecordCount属性来断定纪录的总数;再用纪录总数除以PageSize便可失掉所显现的页面总数;最初经由过程AbsolutePage属性就可以完成对指定页的会见。好象很其实不庞大呀,上面让我们来看看程序该怎样完成呢?
我们创建如许一个复杂的BBS使用程序,它的数据库平分别有以下五个字段:“ID”,每一个帖子的主动编号;“subject”,每一个帖子的主题;“name”,加帖用户的姓名;“email”,用户的电子邮件地点;“postdate”,加帖的工夫。数据库的DSN为“bbs”。我们将显现帖子分页的一切步骤放在一个名为“ShowList()”的过程当中,便利挪用。程序以下:
’----BBS显现帖子分页----
<SubShowList()>
<
PgSz=20’设定开关,指定每页所显现的帖子数量,默许为20帖一页
SetConn=Server.CreateObject("ADODB.Connection")
SetRS=Server.CreateObject("ADODB.RecordSet")
sql="SELECT*FROMmessageorderbyIDDESC"
’查询一切帖子,并按帖子的ID倒序分列
Conn.Open"bbs"
RS.opensql,Conn,1,1
IfRS.RecordCount=0then
response.write"<P><center>对不起,数据库中没有相干信息!</center></P>"
else
RS.PageSize=Cint(PgSz)’设定PageSize属性的值
Total=INT(RS.recordcount/PgSz*-1)*-1’盘算可显现页面的总数
PageNo=Request("pageno")
ifPageNo=""Then
PageNo=1
else
PageNo=PageNo+1
PageNo=PageNo-1
endif
ScrollAction=Request("ScrollAction")
ifScrollAction="上一页"Then
PageNo=PageNo-1
endif
ifScrollAction="下一页"Then
PageNo=PageNo+1
endif
ifPageNo<1Then
PageNo=1
endif
n=1
RS.AbsolutePage=PageNo
Response.Write"<CENTER>"
position=RS.PageSize*PageNo
pagebegin=position-RS.PageSize+1
ifposition<RS.RecordCountthen
pagend=position
else
pagend=RS.RecordCount
endif
Response.Write"<P><fontcolor=’Navy’><B>数据库查询结果:</B>"
Response.Write"(共有"&RS.RecordCount&"条切合前提的信息,显现"&pagebegin&"-"&pagend&")</font></p>"
Response.Write"<TABLEWIDTH=600BORDER=1CELLPADDING=4CELLSPACING=0BGCOLOR=#FFFFFF>"
Response.Write"<TRBGCOLOR=#5FB5E2><FONTSIZE=2><TD><B>主题</B></TD><TD><B>用户</B></TD><TD><B>Email</B></TD><TD><B>发布日期</B></TD></FONT><TRBGCOLOR=#FFFFFF>"
Dowhilenot(RSisnothing)
RowCount=RS.PageSize
DoWhileNotRS.EOFandrowcount>0
Ifn=1then
Response.Write"<TRBGCOLOR=#FFFFFF>"
ELSE
Response.Write"<TRBGCOLOR=#EEEEEE>"
EndIf
n=1-n>
<TD><spanstyle="font-size:9pt"><Ahref=’view.asp?key=<=RS("ID")>’><=RS("subject")></A></span></td>
<TD><spanstyle="font-size:9pt"><=RS("name")></A></span></td>
<TD><spanstyle="font-size:9pt"><ahref="mailto:<=RS("email")>"><=RS("email")></a></span></TD>
<TD><spanstyle="font-size:9pt"><=RS("postdate")></span></td>
</TR>
<
RowCount=RowCount-1
RS.MoveNext
Loop
setRS=RS.NextRecordSet
Loop
Conn.Close
setrs=nothing
setConn=nothing
>
</TABLE>
<FORMMETHOD=GETACTION="list.asp">
<INPUTTYPE="HIDDEN"NAME="pageno"VALUE="<=PageNo>">
<
ifPageNo>1Then
response.write"<INPUTTYPE=SUBMITNAME=’ScrollAction’VALUE=’上一页’>"
endif
ifRowCount=0andPageNoTotalthen
response.write"<INPUTTYPE=SUBMITNAME=’ScrollAction’VALUE=’下一页’>"
endif
response.write"</FORM>"
Endif
>
<EndSub%>
由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况; |
|