|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
asp分页的一个类, 在50,000条记录下测试过,速度比ado的那个要快多了 <% \\\'************************************************************************************ \\\'详细用法 \\\'Set conn=Server.CreateObject("ADODB.Connection") \\\'conn.open "DRIVER={SQL Server};SERVER=(local);UID=sa;PWD=1230;DATABASE=Music" \\\'set rs = mp.Execute("select * from MusicList",conn,29) \\\'while not rs.eof \\\' response.write rs2("MusicName")&"<br>" \\\' rs2.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 %> 返回类别: 教程 上一教程: ASP网页访问权的控制 下一教程: 使用INSTALLSHIELD制作ASP安装程序(1) 您可以阅读与"ASP分页的一个类"相关的教程: · FLASH和ASP分页的一点心得 · 在ASP中通过GETROWS实现数据库记录分页的一段代码 · ASP中通过GETROWS实现数据库记录分页的一段代码 · 一个高效的数据分页的存储过程 · 一个简朴的ASP分页程序 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |