程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> ASP中關於帖子分頁顯示的基本方法

ASP中關於帖子分頁顯示的基本方法

編輯:ASP技巧

ASP中關於帖子分頁顯示的基本方法

  在了解了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 >< A href=’vIEw.ASP?key=< =RS("ID")>’>< =RS("subject")>< /A>< /span>< /td>

< TD>< span >< =RS("name")>< /A>< /span>< /td>

< TD>< span >< a href="mailto:< =RS("email")>">< =RS("email")>< /a>< /span> < /TD>

< TD>< span >< =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 %>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved