ITPub博客

首页 > 应用开发 > IT综合 > 一个实用的ASP分页函数,解决你重复写分页代码的烦恼 (转)

一个实用的ASP分页函数,解决你重复写分页代码的烦恼 (转)

原创 IT综合 作者:amyz 时间:2007-08-16 20:30:33 0 删除 编辑
一个实用的ASP分页函数,解决你重复写分页代码的烦恼 (转)[@more@]

  有时候,大家是不是因为写一些重复的代码而感到烦恼呢?由于在做ASP程序时,很多时候都要用到分页,重复作分页程序错误多不说了,而且影响到作程序的积极性,故写一分页函数,方便大家调用。如下:

  <%
'=================  ProgrammName: 分页函数  =======================
'  ================  Programmed  by  Bubuy  =====================
'  ====================  2003.10.16  ========================
Function cutPage(sqlStr,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.Createobject("ADOdb.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("RM name='formPage' method='post' action="&URL&">")
  Response.Write("")
  Response.Write("")
  End IF
  rsDate.close
  Set rsDate=nothing
End Function
%>

这样使用
page=request("page")
sql="select * 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博客 ” ,链接:https://blog.itpub.net/10752019/viewspace-962673/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
(第"&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 & "