cPage - ASP分页类

 
< %
'******************************************************************************
'类名:cPage
'功能:ASP分页
'作者:inrg
'******************************************************************************
    
Class  cPage
        
Private  page
        
Public  pagesize
        
Private  cRs                
        
Private  isEof
        
        
Private   Sub  class_initialize()
            pagesize 
=   10          ' 初始页大小
            isEof  =   False
            page 
=  Request.QueryString( " page " )
            
If   Trim ( page )  =   ""   Or   Trim ( page )  =   " 0 "   Then
                page 
=   1
            
Else
                page 
=   cInt Trim ( page ) )
            
End   If              
        
End Sub
        
        
Private   Sub  class_terminate()
            
set  cRs  =   nothing
            
set  cCom  =   nothing
        
End Sub
        
        
Public   Sub  setRs( rs )
            
Set  cRs  =  rs
            
If  rs.Eof  Then
                isEof 
=   True
                
Exit Sub
            
End   If
            cRs.PageSize 
=  pagesize
            cRs.AbsolutePage 
=  page
        
End Sub
        
        
' 设置查询字符串
         Private   Function  setUrl( querystring,  str , value )
            
Dim  maxArr, minArr, i, m, strTmp, bool
            
            maxArr 
=   Split ( querystring,  " & "  )
            strTmp 
=   ""
            bool 
=   True
            
            
For  i  =   0   To   Ubound ( maxArr )
                minArr 
=   Split ( maxArr( i ),  " = "  )
                
If   Trim ( minArr(  0  ) )  =   Trim str  )  Then
                    bool 
=   False
                    minArr( 
1  )  =  value
                
End   If
                
If  i  =   Ubound ( maxArr )  Then  
                    strTmp 
=  strTmp  &   Trim ( minArr(  0  ) )  &   " = "   &   Trim ( minArr(  1  ) )
                
Else
                    strTmp 
=  strTmp  &   Trim ( minArr(  0  ) )  &   " = "   &   Trim ( minArr(  1  ) )  &   " & "
                
End   If
            
Next
            
            
If  bool  =   True   Then
                
If   trim ( querystring )  =   ""   Then
                    strTmp 
=   Trim str  )  &   " = "   &   Trim ( value )
                
Else
                    strTmp 
=   Trim ( querystring )  &   " & "   &   Trim str  )  &   " = "   &   Trim ( value )
                
End   If
            
End   If
            
            setUrl 
=  strTmp
        
End Function
        
        
' 获得跳转页面网址
         Public   Function  getUrl( cPage )
            
Dim  servername, scriptname, serverport, querystring, url
            servername 
=  Request.ServerVariables( " SERVER_NAME " )
            scriptname 
=  Request.ServerVariables( " SCRIPT_NAME " )
            serverport 
=  Request.ServerVariables( " SERVER_PORT " )
            querystring 
=  Request.ServerVariables( " Query_String " )

            querystring 
=  setUrl(querystring, " page " , cPage)
            
            
If   Trim ( serverport )  =   " 80 "   Then
                url 
=   " http:// "   &   Trim (servername)  &   Trim (scriptname)  &   " ? "   &   Trim (querystring)
            
Else
                url 
=   " http:// "   &   Trim (servername)  &   " : "   &   Trim (serverport)  &   Trim (scriptname)  &   " ? "   &   Trim (querystring)
            
End   If
            
            getUrl 
=  url
        
End Function
        
        
' 获得分页代码(底部 首页)
         Public   Function  getFirstPageStr( firststr )
            
If  isEof  Then
                getFirstPageStr 
=   ""
                
Exit Function
            
End   If
            
If  page  <=   1   Then
                getFirstPageStr 
=   " <a> " &  firststr  & " </a> "
            
Else     
                getFirstPageStr 
=   " <a href= "   &  getUrl(  1  )  &   " > " &  firststr  & " </a> "
            
End   If
        
End Function
        
        
' 获得分页代码(底部 尾页)
         Public   Function  getEndPageStr( Endstr )
            
If  isEof  Then
                getEndPageStr 
=   ""
                
Exit Function
            
End   If
            
If  page  >=  cRs.PageCount  Then
                getEndPageStr 
=   " <a> " &  Endstr  & " </a> "     
            
Else
                getEndPageStr 
=   " <a href= "   &  getUrl( cRs.PageCount )  &   " > " &  Endstr  & " </a> "
            
End   If
            
        
End Function
        
        
' 获得分页代码(底部 上一页)
         Public   Function  getBeforePageStr( beforestr )
            
If  isEof  Then
                getBeforePageStr 
=   ""
                
Exit Function
            
End   If
            
If  page  <=   1   Then
                getBeforePageStr 
=   " <a> " &  beforestr  & " </a> "
            
Else
                getBeforePageStr 
=   " <a href= "   &  getUrl( page  -   1  )  &   " > " &  beforestr  & " </a> "
            
End   If
        
End Function
        
        
' 获得分页代码(底部 下一页)
         Public   Function  getNextPageStr( nextstr )
            
If  isEof  Then
                getNextPageStr 
=   ""
                
Exit Function
            
End   If
            
If  page  >=  cRs.PageCount  Then
                getNextPageStr 
=   " <a> " &  nextstr  & " </a> "
            
Else
                getNextPageStr 
=   " <a href= "   &  getUrl( page  +   1  )  &   " > " &  nextstr  & " </a> "
            
End   If
        
End Function
        
        
' 获得分页代码(底部 下拉)
         Public   Function  getGoPageStr( gostr )
            
If  isEof  Then
                getGoPageStr 
=   ""
                
Exit Function
            
End   If
            
Dim  i,  str
            
            
str   =  gostr  &   " <select name='page' onChange=javascript:document.forms[0].submit()> "
            
For  i  =   1   To  cRs.PageCount 
                
If  i  =  page  Then
                    
str   =   str   &   " <option value= " &  i  & "  selected> "   &  i  &   " </option> "
                
Else
                    
str   =   str   &   " <option value= " &  i  & "  > "   &  i  &   " </option> "
                
End   If
            
Next  
            
str   =   str   &   " </select> "
            
            getGoPageStr 
=   str
        
End Function
    
End Class
%
>

使用实例:

 

< ! --  #include file = " public.asp "   -->
< %
    
set  cn  =  server.CreateObject( " ADODB.Connection " )
    
set  rs  =  server.CreateObject( " ADODB.Recordset " )
    
    cn.ConnectionString 
=   " Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=pubs;Data Source=. "
    cn.Open 
    rs.Open 
" select * from authors " ,cn, 1 , 3
    
    
set  objTest  =   new  cPage
    
' objTest.pagesize = 5    '设置一页显示的条数,默认10条
    objTest.setRs( rs )    
        
    i 
=  objTest.pagesize
    
while   not  rs.EOF  and  i  >   0
        Response.Write rs(
0 ) & " <br> "
        i 
=  i  -   1
        rs.MoveNext 
    wend    
%
>
< %
    Response.Write objTest.getFirstPageStr(
" |<< " ) & " <br> "      ' 首页
    Response.Write objTest.getBeforePageStr( " << " ) & " <br> "      ' 上一页
    Response.Write objTest.getNextPageStr( " >> " ) & " <br> "          ' 下一页
    Response.Write objTest.getEndPageStr( " >>| " ) & " <br> "          ' 最后一页
% >
< form >
< %
    Response.Write objTest.getGoPageStr(
" 跳至: " )             ' 跳转,必须放在Form内
% >
</ form >

 

有什么问题还请大家发表评论!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值