ASP專案中的公共翻頁模組 (轉)

worldblog發表於2007-12-13
ASP專案中的公共翻頁模組 (轉)[@more@]

專案中的公共翻頁模組

  在大型的ASP專案中,很多的頁面都涉及到翻頁功能。如果每個頁面都寫一個翻頁的的話,這樣的工作即降低了工作,也不利於工程的模組化,不能使程式碼重用。因此,把翻頁這樣的功能模組化是很有必要的。

設計方法:
1、該模組時,只需要傳遞記錄集和每頁顯示的記錄的條數;
2、可以點選連結進行翻頁,也可以直接輸入頁碼,回車後翻頁;
3、不要考慮名,程式的每次翻頁都能在當前頁面。

想清楚了上面3個問題,我們的公共翻頁模組就可以動手了。

'+++++++++++++++++++++++++++++++++++++
'◆模組名稱: 公共翻頁模組
'◆文 件 名: TurnPage.asp
'◆傳入引數: Rs_tmp (記錄集), PageSize (每頁顯示的記錄條數)
'◆輸  出: 記錄集翻頁顯示功能
'+++++++++++++++++++++++++++++++++++++
'
Sub TurnPage(ByRef Rs_tmp,PageSize) 'Rs_tmp 記錄集 ; PageSize 每頁顯示的記錄條數;
Dim TotalPage  '總頁數
Dim PageNo  '當前顯示的是第幾頁
Dim RecordCount  '總記錄條數
  Rs_tmp.PageSize = PageSize
  RecordCount = Rs_tmp.RecordCount
  TotalPage = INT(RecordCount / PageSize * -1)*-1
PageNo = Request.QueryString ("PageNo")
'直接輸入頁數跳轉;
If Request.Form("PageNo")<>"" Then PageNo = Request.Form("PageNo")
'如果沒有選擇第幾頁,則預設顯示第一頁;
If PageNo = "" then PageNo = 1 
If RecordCount <> 0 then
  Rs_tmp.AbsolutePage = PageNo
End If

'獲取當前檔名,使得每次翻頁都在當前頁面進行;
Dim fileName,postion
fileName = Request.ServerVariables("script_name")
postion = InstrRev(fileName,"/")+1
'取得當前的檔名稱,使翻頁的連結指向當前檔案;
fileName = Mid(fileName,postion) 
%>

 
 
 
 
 
 
總頁數:
    當前第

    Response.Write "首頁|前頁|後頁|末頁"
  Else%>
  首頁|
   Response.Write "前頁|"
  Else%>
  前頁|
  
  If PageNo+1 > TotalPage Then
  Response.Write "後頁|"
  Else%>
  後頁|
 
 
  末頁
 
轉到第
 
 
 
 
  頁
 

當然,大家可以把翻頁的連結做成圖片按鈕,這樣的話也面就更加美觀了。

呼叫方法:
  1、在程式開始或要使用翻頁的地方包含翻頁模組檔案;
  2、定義變數:RowCount,每頁顯示的記錄條數
  3、呼叫翻頁過程:Call TurnPage(記錄集,RowCount)
  4、在Do While 迴圈輸出記錄集的條件中加上" RowCount > 0 " 條件
  5、在迴圈結束 "L前" 加上: RowCount = RowCount - 1

'-----------------------------------------------------
呼叫範例:
檔名:News.asp

Dim Conn,Rs_News
Set Conn = server.Create("ADO.CONNECTION")
  Conn.Open "cpm","cpm","cpm"

Dim
  Sql = " * from News"
Set Rs_News = Server.CreateObject("ADODB.RECORDSET")
  Rs_News.Open Sql,Conn,1,3  '獲取的記錄集

 '公共翻頁模組開始%>
<!--#include file=../Public/TurnPage.asp--&gt
Dim RowCount
  RowCount = 10  '每頁顯示的記錄條數
Call TurnPage(Rs_News,RowCount) 
'公共翻頁模組結束%> 



 
 
 

If Not Rs_News.eof
  Do while Not Rs_News.eof and RowCount>0
%>
 
 
 
 
 
  RowCount = RowCount - 1
  Rs_News.MoveNext
  Loop
End If
%>

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-992742/,如需轉載,請註明出處,否則將追究法律責任。

上一篇: 戰神的淚 (轉)
ASP專案中的公共翻頁模組 (轉)
請登入後發表評論 登入
全部評論
新聞編號新聞標題釋出日期

相關文章