|
|
||||
首页
文学作品 网页设计 平面设计 程序设计 考试认证 基础办公 QQ资源 服务器架设 网站运营 网页资源
|
|
|
| 汉南在线 → 网页设计 → Asp动态程序 | |||||||||||
<% '** 分页程序无疑是许多网络 '** 为止绝大部分人还是在使用传统的分页方法(Rs.PageSize=xx),而了解 '** 数据库 '** 它会预读所有的记录 '** 下来的翻页速度 '** 库这种传统分页方式已经显得非常无力,更别说百万级了(根本没法操 '** 作)。基于这种原因,促使我做了本程序。 '** Option Explicit 'Response.Flush Dim BeginTime,EndTime BeginTime=Timer Dim conn,SQLstr,Rs,DefRecordNum,CursorBegin,CursorEnd,CurPageNum,hav DefRecordNum=20 '--------------获取相关参数---------- If Request("CursorBegin")="" Then CursorBegin=0 Else CursorBegin=Request("CursorBegin") If Request("CursorEnd")="" Then CursorEnd=0 Else CursorEnd=Request("CursorEnd") If Request("CurPageNum")<>"" Then CurPageNum=CLng(Request("CurPageNum")) If CurPageNum<=0 Then CurPageNum=1 Else CurPageNum=1 End If hav=Request("hav") If hav="" Then hav="next" '----------------End----------------- '------------显示翻页内容函数-------- Function TurnPageFS(DispRecordNum) Dim n While Not(Rs.Eof) And n<DispRecordNum n=n+1 Response.Write "<tr>"&_ "<td bgcolor='efefef'>"&Rs(0)&"</td>"&_ "<td bgcolor='efefef'>"&Rs(1)&"</td>"&_ "<td bgcolor='efefef'>"&Rs(2)&"</td>"&_ "<td bgcolor='efefef'>"&Rs(3)&"</td>"&_ "<td bgcolor='efefef'>"&Rs(4)&"</td>"&_ "<td bgcolor='efefef'>"&Rs(5)&"</td>"&_ "</tr>" If n=1 Then CursorBegin=Rs(0) If n=DefRecordNum Or Rs.Eof Then CursorEnd=Rs(0) Rs.MoveNext Wend End Function '-------------连接数据库 Set c.CreateObject("Adodb.Connection") 'SQLstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.Mappath("mldata.mdb") SQLstr="Driver={SQL Server};server=arbiter;uid=arbiter;pwd=123456;database=mldata" conn.Open SQLstr '---------统计 '-PS:推荐使用count(ID),ID为自动 '-PS:此统计 Dim TotalRecords,TotalPages SQLstr="Select count(ID) As RecordSum From ABC" Set Rs=conn.Execute(SQLstr,0,1) TotalRecords=Rs("RecordSum") TotalPages=Abs(Int(TotalRecords/DefRecordNum*(-1))) Rs.Close Set Rs=Nothing '--------根据hav选择相应的SQL字串----- Select Case(hav) Case "back" CursorEnd=CursorBegin SQLstr="Select Top "&DefRecordNum&"_ ID,Title,FileName,K,ImgSize,NameSon _ From ABC Where ID<"&CursorBegin&_ " And ID In (Select Top "&DefRecordNum_ &" ID From ABC Where ID<"&CursorBegin_ &" Order by ID DESC) Order by ID" Case "next" SQLstr="Select Top "&DefRecordNum_ &" ID,Title,FileName,K,ImgSize,NameSon From ABC Where ID>"&CursorEnd&_ " Order by ID" End Select Set Rs=conn.Execute(SQLstr,0,1) %> <html> <head> <title>"无限 <meta http-equiv="Content-Type" c> <style type="text/css">td,br,div,p,body {font-size:12px}</style> </head> <body bgcolor="#FFFFFF" leftmargin="0" topmargin="0"> <table width="100%" border="0" cellspacing="0" cellpadding="3" bgcolor="#E2F5FE"> </table> <table width="100%" border="1" cellspacing="0" cellpadding="3" bgcolor="#CCCCCC"> <tr> <td>ID</td> <td>Title</td> <td>FileName</td> <td>大小</td> <td>尺 <td>类别</td> </tr> <% TurnPageFS(DefRecordNum) Rs.Close Set Rs=Nothing conn.Close Set c %> </table> <table width="100%" border="0" cellspacing="0" cellpadding="3" bgcolor="#E2F5FE"> <tr align="center"> <td colspan="2"><%Response.Write CurPageNum&"/"&TotalPages&"页 总记录 <td><a href="mllist.asp">首页</a> <a href=javascript:turnpage('back');>上一页</a> <a href=javascript:turnpage('next');>下一页</a> </td> </tr> </table> <% EndTime=Timer Response.Write "<br>程序执行时间:"&(EndTime-BeginTime)*1000&"毫秒" Response.Write " 第一条记录 Response.Write "最后一条记录 %> <script language="javascript"> function turnpage(func){ var CurPageNum=<%=CurPageNum%>; //取得当前页码 var CursorBegin=<%=CursorBegin%>; //取得第一个显示的记录 var CursorEnd=<%=CursorEnd%>; //取得最后一个显示的记录 var TotalPages=<%=TotalPages%>; //取得页面总数 var BackUrl='mllist.asp?CurPageNum='+(CurPageNum-1)+'&CursorBegin='+CursorBegin+'&CursorEnd='+CursorEnd+'&hav=back'; var NextUrl='mllist.asp?CurPageNum='+(CurPageNum+1)+'&CursorBegin='+CursorBegin+'&CursorEnd='+CursorEnd+'&hav=next'; if(CurPageNum<=1 && func=='back'){ location.href='#'; }else if(CurPageNum>=TotalPages && func=='next'){ location.href='#'; }else if(func=='back'){ location.href=BackUrl; }else if(func='next'){ location.href=NextUrl; } } </script> </body> </html>
| |||||||||||
| >> 相关文章 | |||||||||||
|
授权使用:汉南在线 http://hnzx.hzwz.net/ 经营许可证:陕ICP备05000109号 Powered by:汉南在线 Copyright (c) 2002-2008 汉南在线. All Rights Reserved . |