加载中...
查看文章
  • 一个实用的ASP分页函数,解决你重复写分页代码的烦恼
  • 作者:未知 来源:未知 添加时间:2004年4月9日 字体:
  • 80864    有时候,大家是不是因为写一些重复的代码而感到烦恼呢?由于在做ASP程序时,很多时候都要用到分页,重复作分页程序错误多不说了,而且影响到作程序的积极性,故写一分页函数,方便大家调用。如下:

    C'YA+Mf

    C'YA+Mf       <%

    C'YA+Mf'=================   ProgrammName: 分页函数   =======================

    C'YA+Mf'  ================   Programmed  by  Bubuy   =====================

    C'YA+Mf'    ====================   2003.10.16   ========================

    C'YA+MfFunction cutPage(sqlStr,Conn,dateNums,pageNums,URLs)'利用ADO分页的函数

    C'YA+Mf  Dim sql,Cn,dateNum,pageNum,URL,rsDate

    C'YA+Mf  Sql=Trim(sqlStr) '获得sql语句。

    C'YA+Mf  Set Cn=Conn '获得数据对象

    C'YA+Mf  dateNum=Cint(dateNums) '获得每页得记录数

    C'YA+Mf  pageNum=Cint(pageNums) '获得当前页码

    C'YA+Mf  URL=Trim(URLs) '获得路径

    C'YA+Mf  Set rsDate=Server.CreateObject("ADODB.Recordset")

    C'YA+Mf  rsDate.PageSize=dateNum

    C'YA+Mf  rsDate.Open Sql,cn,1,1

    C'YA+Mf  IF rsDate.Eof Then

    C'YA+Mf     Response.Write("<center><font stlye='font-size:14px;' color='#ff0000'>对不起,没有记录!</font></center>")

    C'YA+Mf  Else

    C'YA+Mf     IF pageNum="" or pageNum<1 Then

    C'YA+Mf     pageNum=1

    C'YA+Mf  ElseIf pageNum>rsDate.PageCount Then

    C'YA+Mf     pageNum=rsDate.PageCount

    C'YA+Mf  End IF

    C'YA+Mf  rsDate.absolutepage =pageNum

    C'YA+Mf     Dim recordHead,recordLast '定义当前页开头记录和结束记录

    C'YA+Mf  recordHead=1

    C'YA+Mf  If pageNum>1 Then recordHead=dateNum*(pageNum-1)

    C'YA+Mf  If pageNum>=rsDate.PageCount Then

    C'YA+Mf     recordLast=rsDate.RecordCount

    C'YA+Mf     Else

    C'YA+Mf     recordLast=dateNum*pageNum

    C'YA+Mf  End If  

    C'YA+Mf     Response.Write("<table width=100% border='0' cellpadding='0' cellspacing='0' style='font-size:12px;'>")

    C'YA+Mf     Response.Write("<tr><td height=38 align=left><font stly='font-size:12px;'>(第"&recordHead&"-"&recordLast&"条,共"&rsDate.Recordcount&"条,每页显示"&dateNum&"条)</font></td></tr>")    

    C'YA+Mf  Dim URLa '定义判断输入得URL包含?没有的变量

    C'YA+Mf  Dim upPage,downPage,allPage '定义向上和向下翻的变量

    C'YA+Mf  Dim allWrite '定义输出

    C'YA+Mf  upPage=pageNum-1

    C'YA+Mf  downPage=pageNum+1

    C'YA+Mf     URLa=Split(URL,"?",-1,1)

    C'YA+Mf     If URLa(0)=URL Then

    C'YA+Mf     upPage="<a href=" & URL & "?page=" & upPage &" stlye='font-size:12px;'>上一页</a>&nbsp;"

    C'YA+Mf  If pageNum=1 Then upPage=""

    C'YA+Mf  downPage="<a href=" & URL & "?page=" & downPage &" stlye='font-size:12px;'>下一页</a>"

    C'YA+Mf  If pageNum=rsDate.PageCount Then downPage=""

    C'YA+Mf     Else

    C'YA+Mf        upPage="<a href=" & URL & "&page=" & upPage &"  stlye='font-size:12px;'>上一页</a>&nbsp;"

    C'YA+Mf  If pageNum=1 Then upPage=""

    C'YA+Mf  downPage="<a href=" & URL & "&page=" & downPage &"  stlye='font-size:12px;'>下一页</a>"

    C'YA+Mf  If pageNum=rsDate.PageCount Then downPage=""

    C'YA+Mf     End If

    C'YA+Mf  allWrite=upPage & downPage & "&nbsp;&nbsp;共" & rsDate.PageCount & "页&nbsp;" & "目前第"& pageNum &"页"

    C'YA+Mf  allwrite="<font style='font-size:12px;'>" & allWrite & "&nbsp;到第<input type='text' style='width:30px;' Name='page'>页<input type='submit' &#118alue='GO'></font>"

    C'YA+Mf  Response.Write("<tr><form name='formPage' method='post' action="&URL&"><td height=30 align=right style='font-szie=12px;'>" & allWrite & "</td></form></tr>")

    C'YA+Mf  Response.Write("<tr><td align=center>")

    C'YA+Mf  Response.Write("<table width=100% border='0' cellpadding='0' cellspacing='0' style='font-size:12px;'>")

    C'YA+Mf  Response.Write("<tr>")

    C'YA+Mf  Response.Write("<tr bgcolor='#efffce' height=25>")

    C'YA+Mf  Dim id,i

    C'YA+Mf  For i=0 to rsDate.Fields.Count-1 '设置表头

    C'YA+Mf     Response.Write("<td align='center'><font style='font-size:14px;'><b>"&rsDate.Fields(i).Name&"</b></font></td>")

    C'YA+Mf  Next

    C'YA+Mf  Response.Write("</tr>")

    C'YA+Mf  id=0

    C'YA+Mf  While not rsDate.EOF and id<dateNum

    C'YA+Mf     id=id+1

    C'YA+Mf  If id Mod 2=0 then

    C'YA+Mf           Response.Write("<tr bgcolor=#f7f6e7>")

    C'YA+Mf        Else

    C'YA+Mf           Response.Write("<tr bgcolor=#ffffff>")

    C'YA+Mf        End If

    C'YA+Mf  For Each fils in rsDate.Fields

    C'YA+Mf        Response.Write("<td align='center' height=20>"&fils&"</td>")

    C'YA+Mf  Next

    C'YA+Mf  Response.Write("</tr>")

    C'YA+Mf  rsDate.MoveNext     

    C'YA+Mf  Wend

    C'YA+Mf  Response.Write("<tr height=25 bgcolor='#efffce'>")

    C'YA+Mf     For i=0 to rsDate.Fields.Count-1 '设置表尾

    C'YA+Mf     Response.Write("<td align='center'><font style='font-size:14px;'><b>"&rsDate.Fields(i).Name&"</b></font></td>")

    C'YA+Mf  Next

    C'YA+Mf  Response.Write("</tr>")

    C'YA+Mf  Response.Write("</table></td></tr>")

    C'YA+Mf  Response.Write("<tr><form name='formPage1' method='post' action="&URL&"><td height=30 align=right>" & allWrite & "</td></form></tr>")

    C'YA+Mf  End IF

    C'YA+Mf  rsDate.close

    C'YA+Mf  Set rsDate=nothing

    C'YA+MfEnd Function

    C'YA+Mf%>

    C'YA+Mf

    C'YA+Mf这样使用

    C'YA+Mfpage=request("page")

    C'YA+Mfsql="select * from [table]" '写sql语句

    C'YA+Mfurl="xx.asp"当然也可以是"xx.asp?bubuy=1"

    C'YA+Mfconn大家都知道是定义的什么吧

    C'YA+Mf调用就这样

    C'YA+MfCall cutPage(sql,conn,"3",page,url)'3代表每页显示3条记录

    C'YA+Mf

    C'YA+Mf      由于我C'YA+Mf水平有限,程序中难免有错,大家顺便提提意见。大家也可以添加新得功能或修改已有得功能不过别忘了改后给我C'YA+Mf一份噢,谢谢,bubuy@sohu.com80861
  • 返回页面顶端
  • 上一篇:自动将远程页面的文件中的图片下载到本地服务器
  • 下一篇:按钮链接乾坤大挪移
  • 返回上一页 打印本文 加入收藏
  • 页面最后更新时间:2010年3月10日