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

     有时候,大家是不是因为写一些重复的代码而感到烦恼呢?由于在做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("<center><font stlye='font-size:14px;' color='#ff0000'>对不起,没有记录!</font></center>")
  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("<table width=100% border='0' cellpadding='0' cellspacing='0' style='font-size:12px;'>")
     Response.Write("<tr><td height=38 align=left><font stly='font-size:12px;'>(第"&recordHead&"-"&recordLast&"条,共"&rsDate.Recordcount&"条,每页显示"&dateNum&"条)</font></td></tr>")   
  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="<a href=" & URL & "?page=" & upPage &" stlye='font-size:12px;'>上一页</a>&nbsp;"
  If pageNum=1 Then upPage=""
  downPage="<a href=" & URL & "?page=" & downPage &" stlye='font-size:12px;'>下一页</a>"
  If pageNum=rsDate.PageCount Then downPage=""
     Else
        upPage="<a href=" & URL & "&page=" & upPage &"  stlye='font-size:12px;'>上一页</a>&nbsp;"
  If pageNum=1 Then upPage=""
  downPage="<a href=" & URL & "&page=" & downPage &"  stlye='font-size:12px;'>下一页</a>"
  If pageNum=rsDate.PageCount Then downPage=""
     End If
  allWrite=upPage & downPage & "&nbsp;&nbsp;共" & rsDate.PageCount & "页&nbsp;" & "目前第"& pageNum &"页"
  allwrite="<font style='font-size:12px;'>" & allWrite & "&nbsp;到第<input type='text' style='width:30px;' Name='page'>页<input type='submit' value='GO'></font>"
  Response.Write("<tr><form name='formPage' method='post' action="&URL&"><td height=30 align=right style='font-szie=12px;'>" & allWrite & "</td></form></tr>")
  Response.Write("<tr><td align=center>")
  Response.Write("<table width=100% border='0' cellpadding='0' cellspacing='0' style='font-size:12px;'>")
  Response.Write("<tr>")
  Response.Write("<tr bgcolor='#efffce' height=25>")
  Dim id,i
  For i=0 to rsDate.Fields.Count-1 '设置表头
     Response.Write("<td align='center'><font style='font-size:14px;'><b>"&rsDate.Fields(i).Name&"</b></font></td>")
  Next
  Response.Write("</tr>")
  id=0
  While not rsDate.EOF and id<dateNum
     id=id+1
  If id Mod 2=0 then
           Response.Write("<tr bgcolor=#f7f6e7>")
        Else
           Response.Write("<tr bgcolor=#ffffff>")
        End If
  For Each fils in rsDate.Fields
        Response.Write("<td align='center' height=20>"&fils&"</td>")
  Next
  Response.Write("</tr>")
  rsDate.MoveNext    
  Wend
  Response.Write("<tr height=25 bgcolor='#efffce'>")
     For i=0 to rsDate.Fields.Count-1 '设置表尾
     Response.Write("<td align='center'><font style='font-size:14px;'><b>"&rsDate.Fields(i).Name&"</b></font></td>")
  Next
  Response.Write("</tr>")
  Response.Write("</table></td></tr>")
  Response.Write("<tr><form name='formPage1' method='post' action="&URL&"><td height=30 align=right>" & allWrite & "</td></form></tr>")
  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条记录

      由于我水平有限,程序中难免有错,大家顺便提提意见。大家也可以添加新得功能或修改已有得功能不过别忘了改后给我一份噢,谢谢,bubuy@sohu.com
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 Flask 分页代码示例: ```python from flask import Flask, render_template, request from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db' db = SQLAlchemy(app) class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100)) content = db.Column(db.Text) @app.route('/') def index(): page = request.args.get('page', 1, type=int) per_page = 10 posts = Post.query.order_by(Post.id.desc()).paginate(page, per_page) return render_template('index.html', posts=posts) if __name__ == '__main__': app.run() ``` 在这个示例中,我们定义了一个 `Post` 模型,它有一个 `id` 字段、一个 `title` 字段和一个 `content` 字段。我们使用 Flask SQLAlchemy 扩展来管理数据库。我们还定义了一个 `index` 视图函数,它接受一个 `page` 参数,用于指定当前页码,默认为 1。我们还定义了一个 `per_page` 变量,用于指定每页显示的文章数量。我们使用 `paginate` 方法来获取当前页的文章列表,并将其传递给模板进行渲染。 在模板中,我们可以使用 `posts.items` 来获取当前页的文章列表,使用 `posts.prev_num` 和 `posts.next_num` 来获取上一页和下一页的页码,使用 `posts.has_prev` 和 `posts.has_next` 来判断是否有上一页和下一页。我们还可以使用 `posts.iter_pages` 方法来生成一个页码列表,用于在页面上显示分页链接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值