最新更新 sitemap 网站制作设计本站搜索
网页设计
国外网站 韩国网站 个人主页 手提袋设计 CSS 网页特效 平面设计 网站设计 Flash CMS技巧 服装网站 php教程 photoshop 画册 服务器选用 数据库 Office
虚拟主机 域名注册 云主机 网页设计 客服QQ:8208442
当前位置:首页 > 编程开发 > asp教程

ASP支持多风格变换的ASP分页类技巧

日期:12-17    来源:中国设计秀    作者:cnwebshow.com

这个分页使用的是0游标,也就是Rs.Open Sql,Conn,0,1。但是感觉也快不了多少,10QWy中国设计秀
万条数据的分页时间300多豪秒之间QWy中国设计秀
<%QWy中国设计秀
Class PageQWy中国设计秀
PRivate CurrPageQWy中国设计秀
Private PageNQWy中国设计秀
Private UrlStrQWy中国设计秀
Private TempStrQWy中国设计秀
Private ErrInfoQWy中国设计秀
Private IsErrQWy中国设计秀
Private TotalRecordQWy中国设计秀
Private TotalPageQWy中国设计秀
Public  PageRsQWy中国设计秀

Private TempA(11)QWy中国设计秀
Private TempB(8)QWy中国设计秀
'------------------------------------------------------------QWy中国设计秀
Private Sub Class_Initialize()QWy中国设计秀
      CurrPage=1'//默认显示当前页为第一页QWy中国设计秀
      PageN=10'//默认每页显示10条数据QWy中国设计秀
      UrlStr="#"QWy中国设计秀
      TempStr=""QWy中国设计秀
      ErrInfo="ErrInfo:"QWy中国设计秀
      IsErr=FalseQWy中国设计秀
End SubQWy中国设计秀
Private Sub Class_Terminate()QWy中国设计秀
      If IsObject(PageRs) ThenQWy中国设计秀
            PageRs.CloseQWy中国设计秀
            Set PageRs=NothingQWy中国设计秀
      End IfQWy中国设计秀
      Erase TempAQWy中国设计秀
      Erase TempBQWy中国设计秀
End SubQWy中国设计秀
'----------------------------------------------------------QWy中国设计秀
'//获取当前页码QWy中国设计秀
Public Property Let CurrentPage(Val)QWy中国设计秀
      CurrPage=Val QWy中国设计秀
End PropertyQWy中国设计秀
Public Property Get CurrentPage()QWy中国设计秀
      CurrentPage=CurrPageQWy中国设计秀
End PropertyQWy中国设计秀
'//获取每页显示条数QWy中国设计秀
Public Property Let PageNum(Val)QWy中国设计秀
      PageN=ValQWy中国设计秀
End PropertyQWy中国设计秀
Public Property Get PageNum()QWy中国设计秀
      PageNum=PageNQWy中国设计秀
End PropertyQWy中国设计秀
'//获取URLQWy中国设计秀
Public Property Let Url(Val)QWy中国设计秀
      UrlStr=ValQWy中国设计秀
End PropertyQWy中国设计秀
Public Property Get Url()QWy中国设计秀
      Url=UrlStrQWy中国设计秀
End PropertyQWy中国设计秀
'//获取模板QWy中国设计秀
Public Property Let Temp(Val)QWy中国设计秀
      TempStr=ValQWy中国设计秀
End PropertyQWy中国设计秀
Public Property Get Temp()QWy中国设计秀
      Temp=TempStrQWy中国设计秀
End PropertyQWy中国设计秀
'------------------------------------------------------------QWy中国设计秀

Public Sub Exec(Sql,ConnObj)QWy中国设计秀
      On Error Resume NextQWy中国设计秀
      Set PageRs=Server.CreateObject("ADODB.RecordSet")QWy中国设计秀
      PageRs.CursorLocation = 3 '使用客户端游标,可以使效率提高QWy中国设计秀
      PageRs.PageSize = PageN '定义分页记录集每页显示记录数QWy中国设计秀
      PageRs.Open Sql,ConnObj,0,1QWy中国设计秀
      If Err.Number<>0 ThenQWy中国设计秀
        Err.ClearQWy中国设计秀
     PageRs.CloseQWy中国设计秀
     Set PageRs=NothingQWy中国设计秀
        ErrInfo=ErrInfo&"建立或打开记录集错误..."QWy中国设计秀
     IsErr=TrueQWy中国设计秀
     Response.Write ErrInfoQWy中国设计秀
     Response.EndQWy中国设计秀
      End IfQWy中国设计秀
      TotalRecord=PageRs.RecordCount'//如果为0呢?QWy中国设计秀
      If TotalRecord>=1 ThenQWy中国设计秀
      '----------------------------------------------------------------------------开始QWy中国设计秀
      '//计算总页数,Ps,为什么不用PageRs.PageCount呢?QWy中国设计秀
      'If TotalRecord Mod PageN=0 ThenQWy中国设计秀
        'TotalPage=PageRs.RecordCountPageNQWy中国设计秀
      'ElseQWy中国设计秀
        'TotalPage=PageRs.RecordCountPageNQWy中国设计秀
     'TotalPage=Abs(Int(TotalPage))QWy中国设计秀
      'End IfQWy中国设计秀
   TotalPage=PageRs.PageCountQWy中国设计秀
      '//处理当前接收页码,默认的为1,所以不是数字类型的都会为1QWy中国设计秀
      If IsNumeric(CurrPage) ThenQWy中国设计秀
         CurrPage=CLNg(CurrPage)QWy中国设计秀
         If CurrPage<1 Then CurrPage=1QWy中国设计秀
      If CurrPage>TotalPage Then CurrPage=TotalPageQWy中国设计秀
      ElseQWy中国设计秀
            '//Dim M:M="":IsNumeric(M)=TrueQWy中国设计秀
         CurrPage=1QWy中国设计秀
      End IfQWy中国设计秀
      '---------------------------------------------------------------------------结束QWy中国设计秀
      ElseQWy中国设计秀
         TotalPage=0QWy中国设计秀
         CurrPage=1QWy中国设计秀
      End IfQWy中国设计秀
      '//QWy中国设计秀
      PageRs.AbsolutePage = CurrPage 'absolutepage:设置指针指向某页开头QWy中国设计秀
      PageRs.PageSize=PageNQWy中国设计秀
End SubQWy中国设计秀
Private Sub Init()QWy中国设计秀
      'Private TempA(10)QWy中国设计秀
      TempA(1)="{N1}" '//首页QWy中国设计秀
      TempA(2)="{N2}"'//上一页QWy中国设计秀
      TempA(3)="{N3}"'//下一页QWy中国设计秀
      TempA(4)="{N4}"'//尾页QWy中国设计秀
      TempA(5)="{N5}"'//当前页码QWy中国设计秀
      TempA(6)="{N6}"'//页码总数QWy中国设计秀
      TempA(7)="{N7}"'//每页条数QWy中国设计秀
      TempA(8)="{N8}"'//文章总数QWy中国设计秀
      TempA(9)="{L}"'//循环标签开始QWy中国设计秀
      TempA(10)="{N}"'//循环内单标签:页码QWy中国设计秀
      TempA(11)="{L/}"'//循环标签结束QWy中国设计秀
      'Private TempB(8)QWy中国设计秀
      TempB(1)="首页"QWy中国设计秀
      TempB(2)="上一页"QWy中国设计秀
      TempB(3)="下一页"QWy中国设计秀
      TempB(4)="尾页"QWy中国设计秀
      TempB(5)=CurrPage'//当前页码QWy中国设计秀
      TempB(6)=TotalPage'//页码总数QWy中国设计秀
      TempB(7)=PageN'//每页条数QWy中国设计秀
      TempB(8)=TotalRecord'//文章总数QWy中国设计秀
End SubQWy中国设计秀
Public Sub Show(Style)QWy中国设计秀
      If IsErr=True ThenQWy中国设计秀
        Response.Write ErrInfoQWy中国设计秀
     Exit SubQWy中国设计秀
      End IfQWy中国设计秀

      Call Init()QWy中国设计秀
      Select Case StyleQWy中国设计秀
      Case 1QWy中国设计秀
         Response.Write StyleA()QWy中国设计秀
      Case 2QWy中国设计秀
         Response.Write StyleB()QWy中国设计秀
      Case 3QWy中国设计秀
         Response.Write StyleC()QWy中国设计秀
      Case 4QWy中国设计秀
         Response.Write StyleD()QWy中国设计秀
      Case ElseQWy中国设计秀
         ErrInfo=ErrInfo&"不存在当前样式..."QWy中国设计秀
      Response.Write ErrInfoQWy中国设计秀
      End SelectQWy中国设计秀
End SubQWy中国设计秀
Public Function ShowStyle(Style)QWy中国设计秀
      If IsErr=True ThenQWy中国设计秀
        ShowStyle=ErrInfoQWy中国设计秀
     Exit FunctionQWy中国设计秀
      End IfQWy中国设计秀

      Call Init()QWy中国设计秀
      Select Case StyleQWy中国设计秀
      Case 1QWy中国设计秀
         ShowStyle= StyleA()QWy中国设计秀
      Case 2QWy中国设计秀
         ShowStyle= StyleB()QWy中国设计秀
      Case ElseQWy中国设计秀
         ErrInfo=ErrInfo&"不存在当前样式..."QWy中国设计秀
  ShowStyle=ErrInfoQWy中国设计秀
      End SelectQWy中国设计秀
End FunctionQWy中国设计秀

Private Function StyleA()QWy中国设计秀
'首页 上一页 下一页 尾页  本页为第1/20页,共20页,每页10条,文章总数200条QWy中国设计秀
'//分页样例:[首页] [上页] [下页] [尾页] [页次:4/5页] [共86篇 20篇/页] 转到:_ 页QWy中国设计秀
'//标签:{N1} {N2} {N3} {N4} || 共:{N8}条记录 {N6}页 当前为第{N5}页 每页{N7}条QWy中国设计秀
If IsEmpty(TempStr) ThenQWy中国设计秀
      ErrInfo=ErrInfo&"模板为空..."QWy中国设计秀
      StyleB=ErrInfoQWy中国设计秀
      Exit FunctionQWy中国设计秀
End IfQWy中国设计秀
Dim MQWy中国设计秀
If TotalPage>1 ThenQWy中国设计秀
      If CurrPage>1 ThenQWy中国设计秀
        M="<a href='"&UrlStr&"Page=1'>"&"首页"&"</a>"QWy中国设计秀
     TempStr=Replace(TempStr,"{N1}",M)QWy中国设计秀
     M="<a href='"&UrlStr&"Page="&CurrPage-1&"'>"&"上一页"&"</a>"QWy中国设计秀
     TempStr=Replace(TempStr,"{N2}",M)QWy中国设计秀
     If CurrPage<TotalPage ThenQWy中国设计秀
       M="<a href='"&UrlStr&"Page="&CurrPage+1&"'>"&"下一页"&"</a>"QWy中国设计秀
    TempStr=Replace(TempStr,"{N3}",M)QWy中国设计秀
    M="<a href='"&UrlStr&"Page="&TotalPage&"'>"&"尾页"&"</a>"QWy中国设计秀
          TempStr=Replace(TempStr,"{N4}",M)QWy中国设计秀
        ElseQWy中国设计秀
       TempStr=Replace(TempStr,"{N3}","下一页")QWy中国设计秀
    TempStr=Replace(TempStr,"{N4}","尾页")QWy中国设计秀
     End IfQWy中国设计秀
      ElseQWy中国设计秀
        TempStr=Replace(TempStr,"{N1}","首页")QWy中国设计秀
     TempStr=Replace(TempStr,"{N2}","上一页")QWy中国设计秀
        M="<a href='"&UrlStr&"Page="&CurrPage+1&"'>"&"下一页"&"</a>"QWy中国设计秀
     TempStr=Replace(TempStr,"{N3}",M)QWy中国设计秀
     M="<a href='"&UrlStr&"Page="&TotalPage&"'>"&"尾页"&"</a>"QWy中国设计秀
        TempStr=Replace(TempStr,"{N4}",M)QWy中国设计秀
      End IfQWy中国设计秀
ElseQWy中国设计秀
      TempStr=Replace(TempStr,"{N1}","首页")QWy中国设计秀
      TempStr=Replace(TempStr,"{N2}","上一页")QWy中国设计秀
      TempStr=Replace(TempStr,"{N3}","下一页")QWy中国设计秀
      TempStr=Replace(TempStr,"{N4}","尾页")QWy中国设计秀
End IfQWy中国设计秀
T=TempStrQWy中国设计秀
T=Replace(T,"{N8}",TotalRecord)QWy中国设计秀
T=Replace(T,"{N6}",TotalPage)QWy中国设计秀
T=Replace(T,"{N5}",CurrPage)QWy中国设计秀
T=Replace(T,"{N7}",PageN)QWy中国设计秀
TempStr=TQWy中国设计秀
StyleA=TempStrQWy中国设计秀
End FunctionQWy中国设计秀

Private Function StyleB()QWy中国设计秀
'首页 |< 1 2 3 4 5 6 7 >| 尾页QWy中国设计秀
'//标签:{N1} {N2} {L}{N}{L/}{N3}{N4}QWy中国设计秀
If IsEmpty(TempStr) ThenQWy中国设计秀
      ErrInfo=ErrInfo&"模板为空..."QWy中国设计秀
      StyleB=ErrInfoQWy中国设计秀
      Exit FunctionQWy中国设计秀
End IfQWy中国设计秀
Dim ForceNum,BackNum'//当前页的前面和后面显示个数QWy中国设计秀
ForceNum=5QWy中国设计秀
BackNum=4QWy中国设计秀
Dim MQWy中国设计秀
'//首页QWy中国设计秀
M="<a href='"&UrlStr&"Page=1'>"&TempB(1)&"</a>"QWy中国设计秀
TempStr=Replace(TempStr,"{N1}",M)QWy中国设计秀
'//尾页QWy中国设计秀
M="<a href='"&UrlStr&"Page="&TempB(6)&"'>"&TempB(4)&"</a>"QWy中国设计秀
TempStr=Replace(TempStr,"{N4}",M)QWy中国设计秀
'//前一页QWy中国设计秀
M="|<"QWy中国设计秀
If CurrPage-1>=1 ThenQWy中国设计秀
      M="<a href='"&UrlStr&"Page="&CurrPage-1&"'>"&"|<"&"</a>"QWy中国设计秀
End IfQWy中国设计秀
TempStr=Replace(TempStr,"{N2}",M)QWy中国设计秀
'//后一页QWy中国设计秀
M=">|"QWy中国设计秀
If CurrPage+1<=TotalPage ThenQWy中国设计秀
      M="<a href='"&UrlStr&"Page="&CurrPage+1&"'>"&">|"&"</a>"QWy中国设计秀
End IfQWy中国设计秀
TempStr=Replace(TempStr,"{N3}",M)QWy中国设计秀
'//取出循环标签QWy中国设计秀
Dim N1,N2,N3,N4,N5,N6QWy中国设计秀
If InStr(TempStr,"{L}")>0 ThenQWy中国设计秀
      N1=InStr(TempStr,"{L}")QWy中国设计秀
End IfQWy中国设计秀
If InStr(TempStr,"{L/}")>0 ThenQWy中国设计秀
      N2=InStr(TempStr,"{L/}")QWy中国设计秀
End IfQWy中国设计秀
If N2<=N1 ThenQWy中国设计秀
      ErrInfo=ErrInfo&"循环标签出错..."QWy中国设计秀
      StyleB=ErrInfoQWy中国设计秀
      Exit FunctionQWy中国设计秀
End IfQWy中国设计秀
N3=Mid(TempStr,N1,N2-N1+4)'//储存包括{L}{L/}循环标签的模板QWy中国设计秀
N4=Replace(N3,"{L}","")'//储存不包括{L}{L/}循环标签的模板QWy中国设计秀
N4=Replace(N4,"{L/}","")QWy中国设计秀
'//页码列表QWy中国设计秀
Dim FirstPageNum,LastPageNumQWy中国设计秀
If CurrPage-ForceNum<=1 ThenQWy中国设计秀
   FirstPageNum=1QWy中国设计秀
   PageList=""QWy中国设计秀
ElseQWy中国设计秀
   FirstPageNum=CurrPage-ForceNumQWy中国设计秀
   PageList="... ..."QWy中国设计秀
End IfQWy中国设计秀
If CurrPage+BackNum>=TotalPage ThenQWy中国设计秀
   LastPageNum=TotalPageQWy中国设计秀
   PageList_2=""QWy中国设计秀
ElseQWy中国设计秀
   LastPageNum=CurrPage+BackNumQWy中国设计秀
   PageList_2="... ..."QWy中国设计秀
End IfQWy中国设计秀
Dim IQWy中国设计秀
For I=FirstPageNum To LastPageNumQWy中国设计秀
      If I=CurrPage ThenQWy中国设计秀
        N5=Replace(N4,"{N}","<b>"&I&"</b>")QWy中国设计秀
     N6=N6&N5QWy中国设计秀
      ElseQWy中国设计秀
        M="<a href='"&UrlStr&"Page="&I&"'>"&I&"</a>"QWy中国设计秀
     N5=Replace(N4,"{N}",M)QWy中国设计秀
     N6=N6&N5QWy中国设计秀
      End IfQWy中国设计秀
NextQWy中国设计秀
TempStr=Replace(TempStr,N3,N6)QWy中国设计秀
StyleB=TempStrQWy中国设计秀
End FunctionQWy中国设计秀

Private Function StyleC()QWy中国设计秀
'首页 |< |<< 1 2 3 4 5 6 7 >>| >| 尾页QWy中国设计秀
'//此风格在StyleB的基础上修改,增加两个标签:{N9}上10页 {N10}下10页QWy中国设计秀
'//标签:{N1}{N2}{N9}{L}{N}{L/}{N10}{N3}{N4}QWy中国设计秀
Dim TQWy中国设计秀
T=StyleB()QWy中国设计秀
'//前十页QWy中国设计秀
M="|<<"QWy中国设计秀
If CurrPage-10>=1 ThenQWy中国设计秀
      M="<a href='"&UrlStr&"Page="&CurrPage-10&"'>"&"|<<"&"</a>"QWy中国设计秀
End IfQWy中国设计秀
T=Replace(T,"{N9}",M)QWy中国设计秀
M=">>|"QWy中国设计秀
If CurrPage+10<=TotalPage ThenQWy中国设计秀
      M="<a href='"&UrlStr&"Page="&CurrPage+10&"'>"&">>|"&"</a>"QWy中国设计秀
End IfQWy中国设计秀
T=Replace(T,"{N10}",M)QWy中国设计秀
StyleC=TQWy中国设计秀
End FunctionQWy中国设计秀

Private Function StyleD()QWy中国设计秀
'//此风格在StyleC的基础上修改QWy中国设计秀
'//共{N8}条记录 {N6}页 当前为第{N5}页 每页{N7}条QWy中国设计秀
'//首页 |< |<< 1 2 3 4 5 6 7 >>| >| 尾页QWy中国设计秀
'//标签:{N1}{N2}{N9}{L}{N}{L/}{N10}{N3}{N4}QWy中国设计秀
Dim TQWy中国设计秀
T=StyleC()QWy中国设计秀
T=Replace(T,"{N8}",TotalRecord)QWy中国设计秀
T=Replace(T,"{N6}",TotalPage)QWy中国设计秀
T=Replace(T,"{N5}",CurrPage)QWy中国设计秀
T=Replace(T,"{N7}",PageN)QWy中国设计秀
StyleD=TQWy中国设计秀
End FunctionQWy中国设计秀

End ClassQWy中国设计秀
%>QWy中国设计秀

本文引用地址:/bc/article_46447.html
网站地图 | 关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明