分页显示类源代码

<%'用法

Dim Pages'定义类变量
Set Pages = New Cls_Pages_New
Pages.intPage= Page'当前页码
Pages.RequestPage = 10'每页显示多少页的翻页数
Pages.ShowNum=10'每页显示的记录数
Pages.Other = Zr.QueryString'多个URL变量
Rs = Pages.ResultSet(sql)'类输出的结果
RecordCount=Pages.intReCun'总记录数
If IsNull(Rs) Then   Rs = "<br>尚无任何内容"'为空则没有记录
If IsArray(rs) Then
For i=0 To ubound(Rs,2)
'循环体内容为结果输出
Next
End If
%>

<%=Pages.ShowPages()%>分页输出

<%

Class Cls_Pages_New
   Private intRspagesize,intPaCun,intPageCun,intPageDown,intpageup,page
   Private Rs,TOther
   Public intReCun
'初始化
   Private Sub Class_Initialize()
     intRspagesize=20'每页显示的记录数
intPageCun=10'每页显示多少页
intReCun=-1'总记录数
   End Sub
'结束
   Private Sub Class_Terminate()
   End Sub


'取得当前页
   Public Property Let intPage(ByVal VShowNum)
     page=CheckNum(VShowNum,10,-1)
if IsNumeric(page) then'页码为整数
    page=cint(page)
    if page<1 then page=1
else
    page=1
end if
   End Property
'取得每页显示条数
   Public Property Let ShowNum(ByVal VShowNum)
       intRspagesize=CheckNum(VShowNum,10,-1)
   End Property
'取得每页显示页数
   Public Property Let RequestPage(ByVal VShowNum)
       intPageCun=CheckNum(VShowNum,10,-1)
   End Property
'取得URL上的其他参数
   Public Property Let Other(ByVal Tor)
     If Tor="" Or IsNull(Tor) Then
       TOther=""
     Else
       TOther=Tor & "&"
     End If
   End Property
'输出结果数组
   Public Property Get ResultSet(ByVal sql)
     ResultSet=Null
If Not IsObject(Conn) Then ConnectionDatabase
Set Rs = Server.CreateObject ("Adodb.Recordset")
Rs.CursorLocation = 3
On Error Resume Next
Rs.Open sql,Conn,1,1,&H0001'&H0001表示adCmdText,将执行一段sql,&H0002表示adCmdTable,将操作一个表
If Err Then
   err.Clear
   Set Conn = Nothing
   Response.Write "查询数据的时候发现错误,请检查您的查询代码是否正确。"
   Response.End
End If
If Not Rs.Eof Then
Rs.pagesize=intRspagesize
intReCun=Rs.Recordcount'总记录数
intPaCun=Rs.pagecount'总页数
Rs.absolutepage=page
ResultSet=Rs.GetRows(intRspagesize)
End If
Rs.Close
Set Rs=Nothing
'Rs.AbsolutePosition = ( TmpPage - 1)* TShowNum + 1
Zr.SqlQueryNum = Zr.SqlQueryNum+1
   End Property
'
   Private Function CheckNum(byVal iStr,byVal iStartNum,byVal iEndNum)
     If Not IsNumeric(iStr) Then
       CheckNum=iStartNum
     Else
       CheckNum=Clng(iStr)
     End If
     If iEndNum>-1 Then
       If CheckNum<iStartNum Then CheckNum=iStartNum
       If CheckNum>iEndNum Then CheckNum=iEndNum
     End If
   End Function
'显示分页栏目
   Public Function ShowPages()
     Dim HTMLtext
If intPaCun<intPageCun Then intPageCun=intPaCun
If page<>1 Then'显示第一页
HTMLtext=HTMLtext&"<a href=""?"&TOther&"page=1"" title=""第一页""><font style=""font-family:webdings"">9</font></a>"&Chr(13)&Chr(10)
Else
HTMLtext=HTMLtext&"<font style=""font-family:webdings"">9</font>"&Chr(13)&Chr(10)
End If
If page>intPageCun Then'显示上多页
HTMLtext=HTMLtext&"<a href=""?"&TOther&"page="&page-intPageCun&""" title=""上"&intPageCun&"页""><font style=""font-family:webdings"">7</font></a>"&Chr(13)&Chr(10)
Else
HTMLtext=HTMLtext&"<font style=""font-family:webdings"">7</font>"&Chr(13)&Chr(10)
End If
If page>1 Then'显示上一页
HTMLtext=HTMLtext&"<a href=""?"&TOther&"page="&page-1&""" title=""上一页""><font style=""font-family:webdings"">3</font></a>"&Chr(13)&Chr(10)
Else
HTMLtext=HTMLtext&"<font style=""font-family:webdings"">3</font>"&Chr(13)&Chr(10)
End If

If intPageCun mod 2 =1 Then
intpageup=(intPageCun-1)/2
intPageDown=intpageup
Else
intpageup=intPageCun/2-1
intPageDown=intpageup+1
End If
If page<=intpageup Then
intpageup=page-1
intPageDown=intPageCun-intpageup-1
End If
If (intPaCun-page)<=intPageDown Then
intPageDown=(intPaCun-page)
intpageup=intPageCun-intPageDown-1
End If
For i=intpageup To 1 Step -1
HTMLtext=HTMLtext&"<a href=""?"&TOther&"page="&(page-i)&""" title=""第"&(page-i)&"页"">"&(page-i)&"</a>"&Chr(13)&Chr(10)
Next
HTMLtext=HTMLtext&"<font>"&page&"</font>"&Chr(13)&Chr(10)'当前页
For i=1 To intPageDown
HTMLtext=HTMLtext&"<a href=""?"&TOther&"page="&(page+i)&""" title=""第"&(page+i)&"页"">"&(page+i)&"</a>"&Chr(13)&Chr(10)
Next

If page<intPaCun Then'显示下一页
HTMLtext=HTMLtext&"<a href=""?"&TOther&"page="&page+1&""" title=""下一页""><font style=""font-family:webdings"">4</font></a>"&Chr(13)&Chr(10)
Else
HTMLtext=HTMLtext&"<font style=""font-family:webdings"">4</font>"&Chr(13)&Chr(10)
End If
If page<intPaCun-intPageCun Then'显示下多页
HTMLtext=HTMLtext&"<a href=""?"&TOther&"page="&page+intPageCun&""" title=""下"&intPageCun&"页""><font style=""font-family:webdings"">8</font></a>"&Chr(13)&Chr(10)
Else
HTMLtext=HTMLtext&"<font style=""font-family:webdings"">8</font>"&Chr(13)&Chr(10)
End If
If page<>intPaCun Then'显示最后一页
HTMLtext=HTMLtext&"<a href=""?"&TOther&"page="&intPaCun&""" title=""最后一页""><font style=""font-family:webdings"">:</font></a>"&Chr(13)&Chr(10)
Else
HTMLtext=HTMLtext&"<font style=""font-family:webdings"">:</font>"&Chr(13)&Chr(10)
End If
ShowPages=HTMLtext
   End Function
End Class
%>

转载于:https://www.cnblogs.com/lykouyi/p/5687895.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值