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")&"
" 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 = "9" '|<< LastPageTag = ":" '>>| previewPageTag = "7" '<< nextPageTag = "8" '>> dim strAnd if instr(MyPage_Url,"?")=0 then strAnd = "?" else strAnd = "&" end if response.write "
" response.write "页次:"&MyPage_PageAbsolute&"/"&MyPage_PageTotal&"页 " response.write "主题数:"&MyPage_RecordTotal response.write " | " response.write "" response.write "分页:" if MyPage_PageAbsolute>10 then response.write ""&firstPageTag&"" response.write ""&previewPageTag&"" 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 | " response.write "