源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

asp分页的一个类

  • 时间:2020-09-24 12:48 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:asp分页的一个类
asp分页的一个类  在50,000条记录下测试过,速度比ado的那个要快多了  <% '************************************************************************************ '具体用法 Dim strDbPath Dim connstr Dim mp Set mp = New MyPage strDbPath = "fenye/db.mdb" connstr  = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" connstr  = connstr & Server.MapPath(strDbPath) Set conn  = Server.CreateObject("Adodb.Connection") conn.open connstr set rs = mp.Execute("select * from table1",conn,29) while not rs.eof     response.write rs("aaaa")&"<br>"     rs.MoveNext wend mp.pageDispaly() '************************************************************************************ Class MyPage     private MyPage_Conn,MyPage_StrSql,MyPage_TotalStrSql,MyPage_RS,MyPage_TotalRS     private MyPage_PageSize     private MyPage_PageAbsolute,MyPage_PageTotal,MyPage_RecordTotal     private MyPage_Url     public property let conn(strConn)     set MyPage_Conn = strConn     end property     public property let PageSize(intPageSize)         MyPage_PageSize = Cint(intPageSize)     end property     public function PageExecute(strSql)         MyPage_PageAbsolute = MyPage_PageAbsoluteRequest()         MyPage_TotalStrSql = FormatMyPage_TotalStrSql(strSql)          set MyPage_TotalRS = MyPage_Conn.execute(MyPage_TotalStrSql)         MyPage_RecordTotal = MyPage_TotalRS("total")         MyPage_PageTotal = Cint(MyPage_RecordTotal/MyPage_PageSize)         MyPage_StrSql = FormatMyPage_StrSql(strSql)         set MyPage_RS = MyPage_Conn.execute(MyPage_StrSql)         dim i         i = 0          while not MyPage_RS.eof and  i<(MyPage_PageAbsolute-1)*MyPage_PageSize             i = i + 1             MyPage_RS.MoveNext         wend         set PageExecute = MyPage_RS      end function     public function Execute(strSql,strConn,intPageSize)         conn = strConn         PageSize = intPageSize         set Execute = PageExecute(strSql)     end function     public function pageDispaly()         MyPage_Url = ReadMyPage_Url         firstPageTag = "<font face=webdings>9</font>"  '|<<         LastPageTag = "<font face=webdings>:</font>"  '>>|         previewPageTag = "<font face=webdings>7</font>"  '<<         nextPageTag = "<font face=webdings>8</font>"  '>>         dim strAnd         if instr(MyPage_Url,"?")=0 then             strAnd = "?"         else             strAnd = "&"         end if         response.write "<table width=100%  border=0 cellspacing=0 cellpadding=0>"         response.write "<tr>"         response.write "<td align=left>"         response.write  "页次:"&MyPage_PageAbsolute&"/"&MyPage_PageTotal&"页 "         response.write  "主题数:"&MyPage_RecordTotal         response.write "</td>"         response.write "<td align=right>"         response.write  "分页:"         if MyPage_PageAbsolute>10 then             response.write  "<a href='"&MyPage_Url&strAnd&"MyPage_PageNo=1'>"&firstPageTag&"</a>"             response.write  "<a href='"&MyPage_Url&strAnd&"MyPage_PageNo="&(MyPage_PageAbsolute-10)&"'>"&previewPageTag&"</a>"         else             response.write  firstPageTag             response.write  previewPageTag         end if         response.write " "         dim CurrentStartPage,i         i = 1         CurrentStartPage=(Cint(MyPage_PageAbsolute)\10)*10+1         if Cint(MyPage_PageAbsolute) mod 10=0 then             CurrentStartPage = CurrentStartPage - 10         end if         while i<11 and CurrentStartPage<MyPage_PageTotal+1             if CurrentStartPage < 10 then                 FormatCurrentStartPage = "0" & CurrentStartPage             else                 FormatCurrentStartPage = CurrentStartPage             end if             response.write  "<a href='"&MyPage_Url&strAnd&"MyPage_PageNo="&CurrentStartPage&"'>"&FormatCurrentStartPage&"</a> "             i = i + 1             CurrentStartPage = CurrentStartPage + 1         wend         if MyPage_PageAbsolute<(MyPage_PageTotal-10) then             response.write  "<a href='"&MyPage_Url&strAnd&"MyPage_PageNo="&(MyPage_PageAbsolute+10)&"'>"&nextPageTag&"</a>"             response.write  "<a href='"&MyPage_Url&strAnd&"MyPage_PageNo="&MyPage_PageTotal&"'>"&LastPageTag&"</a>"         else             response.write  nextPageTag             response.write  LastPageTag         end if         response.write  ""         response.write "</td>"         response.write "</tr>"          response.write "</table>"     end function     public function GetPageNo()         GetPageNo = cint(MyPage_PageAbsolute)     end function     public function GetPageCount()         GetPageCount = cint(MyPage_PageTotal)     end function     public function GetPageNoName()         GetPageNoName = "MyPage_PageNo"     end function     public function GetPageSize()         GetPageSize = MyPage_PageSize     end function     public function GetRecordTotal()         GetRecordTotal = MyPage_RecordTotal     end function          private function FormatMyPage_TotalStrSql(strSql)         FormatMyPage_TotalStrSql = "select count(*) as total "         FormatMyPage_TotalStrSql = FormatMyPage_TotalStrSql & Mid(strSql,instr(strSql,"from"))         FormatMyPage_TotalStrSql = Mid(FormatMyPage_TotalStrSql,1,instr(FormatMyPage_TotalStrSql&"order by","order by")-1)     end function     private function FormatMyPage_StrSql(strSql)         FormatMyPage_StrSql = replace(strSql,"select","select top "&(MyPage_PageAbsolute*Cint(MyPage_PageSize)))     end function     private function MyPage_PageAbsoluteRequest()         if request("MyPage_PageNo")="" then              MyPage_PageAbsoluteRequest = 1         else             if IsNumeric(request("MyPage_PageNo")) then                 MyPage_PageAbsoluteRequest = request("MyPage_PageNo")             else                 MyPage_PageAbsoluteRequest = 1             end if         end if     end function     private function ReadMyPage_Url()         ReadMyPage_Url = Request.ServerVariables("URL")         if Request.QueryString<>"" then             ReadMyPage_Url = ReadMyPage_Url & "?" & Request.QueryString          end if         set re = new RegExp         re.Pattern = "[&|?]MyPage_PageNo=\d+?"         re.IgnoreCase = true         re.multiLine = true         re.global = true         Set Matches = re.Execute(ReadMyPage_Url)          For Each Match in Matches               tmpMatch = Match.Value             ReadMyPage_Url = replace(ReadMyPage_Url,tmpMatch,"")         next     end function end Class %> 
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部