- 一个实用的ASP分页函数,解决你重复写分页代码的烦恼
- 作者:未知 来源:未知 添加时间:2004年4月9日 字体:大 中 小
- 83789 有时候,大家是不是因为写一些重复的代码而感到烦恼呢?由于在做ASP程序时,很多时候都要用到分页,重复作分页程序错误多不说了,而且影响到作程序的积极性,故写一分页函数,方便大家调用。如下:
R6iQ;\v
R6iQ;\v <%
R6iQ;\v'================= ProgrammName: 分页函数 =======================
R6iQ;\v' ================ Programmed by Bubuy =====================
R6iQ;\v' ==================== 2003.10.16 ========================
R6iQ;\vFunction cutPage(sqlStr,Conn,dateNums,pageNums,URLs)'利用ADO分页的函数
R6iQ;\v Dim sql,Cn,dateNum,pageNum,URL,rsDate
R6iQ;\v Sql=Trim(sqlStr) '获得sql语句。
R6iQ;\v Set Cn=Conn '获得数据对象
R6iQ;\v dateNum=Cint(dateNums) '获得每页得记录数
R6iQ;\v pageNum=Cint(pageNums) '获得当前页码
R6iQ;\v URL=Trim(URLs) '获得路径
R6iQ;\v Set rsDate=Server.CreateObject("ADODB.Recordset")
R6iQ;\v rsDate.PageSize=dateNum
R6iQ;\v rsDate.Open Sql,cn,1,1
R6iQ;\v IF rsDate.Eof Then
R6iQ;\v Response.Write("<center><font stlye='font-size:14px;' color='#ff0000'>对不起,没有记录!</font></center>")
R6iQ;\v Else
R6iQ;\v IF pageNum="" or pageNum<1 Then
R6iQ;\v pageNum=1
R6iQ;\v ElseIf pageNum>rsDate.PageCount Then
R6iQ;\v pageNum=rsDate.PageCount
R6iQ;\v End IF
R6iQ;\v rsDate.absolutepage =pageNum
R6iQ;\v Dim recordHead,recordLast '定义当前页开头记录和结束记录
R6iQ;\v recordHead=1
R6iQ;\v If pageNum>1 Then recordHead=dateNum*(pageNum-1)
R6iQ;\v If pageNum>=rsDate.PageCount Then
R6iQ;\v recordLast=rsDate.RecordCount
R6iQ;\v Else
R6iQ;\v recordLast=dateNum*pageNum
R6iQ;\v End If
R6iQ;\v Response.Write("<table width=100% border='0' cellpadding='0' cellspacing='0' style='font-size:12px;'>")
R6iQ;\v Response.Write("<tr><td height=38 align=left><font stly='font-size:12px;'>(第"&recordHead&"-"&recordLast&"条,共"&rsDate.Recordcount&"条,每页显示"&dateNum&"条)</font></td></tr>")
R6iQ;\v Dim URLa '定义判断输入得URL包含?没有的变量
R6iQ;\v Dim upPage,downPage,allPage '定义向上和向下翻的变量
R6iQ;\v Dim allWrite '定义输出
R6iQ;\v upPage=pageNum-1
R6iQ;\v downPage=pageNum+1
R6iQ;\v URLa=Split(URL,"?",-1,1)
R6iQ;\v If URLa(0)=URL Then
R6iQ;\v upPage="<a href=" & URL & "?page=" & upPage &" stlye='font-size:12px;'>上一页</a> "
R6iQ;\v If pageNum=1 Then upPage=""
R6iQ;\v downPage="<a href=" & URL & "?page=" & downPage &" stlye='font-size:12px;'>下一页</a>"
R6iQ;\v If pageNum=rsDate.PageCount Then downPage=""
R6iQ;\v Else
R6iQ;\v upPage="<a href=" & URL & "&page=" & upPage &" stlye='font-size:12px;'>上一页</a> "
R6iQ;\v If pageNum=1 Then upPage=""
R6iQ;\v downPage="<a href=" & URL & "&page=" & downPage &" stlye='font-size:12px;'>下一页</a>"
R6iQ;\v If pageNum=rsDate.PageCount Then downPage=""
R6iQ;\v End If
R6iQ;\v allWrite=upPage & downPage & " 共" & rsDate.PageCount & "页 " & "目前第"& pageNum &"页"
R6iQ;\v allwrite="<font style='font-size:12px;'>" & allWrite & " 到第<input type='text' style='width:30px;' Name='page'>页<input type='submit' &#118alue='GO'></font>"
R6iQ;\v Response.Write("<tr><form name='formPage' method='post' action="&URL&"><td height=30 align=right style='font-szie=12px;'>" & allWrite & "</td></form></tr>")
R6iQ;\v Response.Write("<tr><td align=center>")
R6iQ;\v Response.Write("<table width=100% border='0' cellpadding='0' cellspacing='0' style='font-size:12px;'>")
R6iQ;\v Response.Write("<tr>")
R6iQ;\v Response.Write("<tr bgcolor='#efffce' height=25>")
R6iQ;\v Dim id,i
R6iQ;\v For i=0 to rsDate.Fields.Count-1 '设置表头
R6iQ;\v Response.Write("<td align='center'><font style='font-size:14px;'><b>"&rsDate.Fields(i).Name&"</b></font></td>")
R6iQ;\v Next
R6iQ;\v Response.Write("</tr>")
R6iQ;\v id=0
R6iQ;\v While not rsDate.EOF and id<dateNum
R6iQ;\v id=id+1
R6iQ;\v If id Mod 2=0 then
R6iQ;\v Response.Write("<tr bgcolor=#f7f6e7>")
R6iQ;\v Else
R6iQ;\v Response.Write("<tr bgcolor=#ffffff>")
R6iQ;\v End If
R6iQ;\v For Each fils in rsDate.Fields
R6iQ;\v Response.Write("<td align='center' height=20>"&fils&"</td>")
R6iQ;\v Next
R6iQ;\v Response.Write("</tr>")
R6iQ;\v rsDate.MoveNext
R6iQ;\v Wend
R6iQ;\v Response.Write("<tr height=25 bgcolor='#efffce'>")
R6iQ;\v For i=0 to rsDate.Fields.Count-1 '设置表尾
R6iQ;\v Response.Write("<td align='center'><font style='font-size:14px;'><b>"&rsDate.Fields(i).Name&"</b></font></td>")
R6iQ;\v Next
R6iQ;\v Response.Write("</tr>")
R6iQ;\v Response.Write("</table></td></tr>")
R6iQ;\v Response.Write("<tr><form name='formPage1' method='post' action="&URL&"><td height=30 align=right>" & allWrite & "</td></form></tr>")
R6iQ;\v End IF
R6iQ;\v rsDate.close
R6iQ;\v Set rsDate=nothing
R6iQ;\vEnd Function
R6iQ;\v%>
R6iQ;\v
R6iQ;\v这样使用
R6iQ;\vpage=request("page")
R6iQ;\vsql="select * from [table]" '写sql语句
R6iQ;\vurl="xx.asp"当然也可以是"xx.asp?bubuy=1"
R6iQ;\vconn大家都知道是定义的什么吧
R6iQ;\v调用就这样
R6iQ;\vCall cutPage(sql,conn,"3",page,url)'3代表每页显示3条记录
R6iQ;\v
R6iQ;\v 由于我R6iQ;\v水平有限,程序中难免有错,大家顺便提提意见。大家也可以添加新得功能或修改已有得功能不过别忘了改后给我R6iQ;\v一份噢,谢谢,bubuy@sohu.com83786
- 返回页面顶端


- 上一篇:自动将远程页面的文件中的图片下载到本地服务器
- 下一篇:按钮链接乾坤大挪移
返回上一页
打印本文
加入收藏
页面最后更新时间:2011年5月18日