一個實用的ASP分頁函式,解決你重複寫分頁程式碼的煩惱 (轉)

amyz發表於2007-08-16
一個實用的ASP分頁函式,解決你重複寫分頁程式碼的煩惱 (轉)[@more@]

  有時候,大家是不是因為寫一些重複的程式碼而感到煩惱呢?由於在做時,很多時候都要用到分頁,重複作分頁程式錯誤多不說了,而且影響到作程式的積極性,故寫一分頁,方便大家。如下:

  '=================  ProgrammName: 分頁函式  =======================
'  ================  Programmed  by  Bubuy  =====================
'  ====================  .10.16  ========================
Function cutPage(Str,Conn,dateNums,pageNums,URLs)'利用ADO分頁的函式
  Dim sql,Cn,dateNum,pageNum,URL,rsDate
  Sql=Trim(sqlStr) '獲得sql語句。
  Set Cn=Conn '獲得資料
  dateNum=Cint(dateNums) '獲得每頁得記錄數
  pageNum=Cint(pageNums) '獲得當前頁碼
  URL=Trim(URLs) '獲得路徑
  Set rsDate=Server.Create("ADO.Recordset")
  rsDate.PageSize=dateNum
  rsDate.Open Sql,cn,1,1
  IF rsDate.Eof Then
  Response.Write("

對不起,沒有記錄!
")
  Else
  IF pageNum="" or pageNum<1 Then
  pageNum=1
  ElseIf pageNum>rsDate.PageCount Then
  pageNum=rsDate.PageCount
  End IF
  rsDate.absolutepage =pageNum
  Dim recordHead,recordLast '定義當前頁開頭記錄和結束記錄
  recordHead=1
  If pageNum>1 Then recordHead=dateNum*(pageNum-1)
  If pageNum>=rsDate.PageCount Then
  recordLast=rsDate.RecordCount
  Else
  recordLast=dateNum*pageNum
  End If 
  Response.Write("")
  Response.Write("") 
  Dim URLa '定義判斷輸入得URL包含?沒有的變數
  Dim upPage,downPage,allPage '定義向上和向下翻的變數
  Dim allWrite '定義輸出
  upPage=pageNum-1
  downPage=pageNum+1
  URLa=Split(URL,"?",-1,1)
  If URLa(0)=URL Then
  upPage="上一頁 "
 If pageNum=1 Then upPage=""
 downPage="下一頁"
 If pageNum=rsDate.PageCount Then downPage=""
  Else
  upPage="上一頁 "
 If pageNum=1 Then upPage=""
 downPage="下一頁"
 If pageNum=rsDate.PageCount Then downPage=""
  End If
  allWrite=upPage & downPage & "  共" & rsDate.PageCount & "頁 " & "目前第"& pageNum &"頁"
  allwrite="" & allWrite & " 到第"
  Response.Write("")
  Response.Write("")
  Response.Write("")
  End IF
  rsDate.close
  Set rsDate=nothing
End Function
%>

這樣使用
page=request("page")
sql=" * from [table]" '寫sql語句
url="xx.asp"當然也可以是"xx.asp?bubuy=1"
conn大家都知道是定義的什麼吧
呼叫就這樣
Call cutPage(sql,conn,"3",page,url)'3代表每頁顯示3條記錄

  由於我水平有限,程式中難免有錯,大家順便提提意見。大家也可以新增新得功能或修改已有得功能不過別忘了改後給我一份噢,謝謝,to:bubuy@sohu.com">bubuy@sohu.com
 


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

一個實用的ASP分頁函式,解決你重複寫分頁程式碼的煩惱 (轉)
請登入後發表評論 登入
全部評論
(第"&recordHead&"-"&recordLast&"條,共"&rsDate.Recordcount&"條,每頁顯示"&dateNum&"條)
" & allWrite & "
")
  Response.Write("")
  Response.Write("")
  Response.Write("")
  Dim id,i
  For i=0 to rsDate.Fields.Count-1 '設定表頭
  Response.Write("")
  Next
  Response.Write("")
  id=0
  While not rsDate.EOF and id  id=id+1
 If id Mod 2=0 then
  Response.Write("
")
  Else
  Response.Write("")
  End If
 For Each fils in rsDate.Fields
  Response.Write("")
 Next
 Response.Write("")
 rsDate.MoveNext 
  Wend
  Response.Write("")
  For i=0 to rsDate.Fields.Count-1 '設定表尾
  Response.Write("")
  Next
  Response.Write("")
  Response.Write("
"&rsDate.Fields(i).Name&"
"&fils&"
"&rsDate.Fields(i).Name&"
" & allWrite & "

相關文章