| 導購 | 订阅 | 在线投稿
分享
 
 
當前位置: 王朝網路 >> asp >> ASP分頁代碼的學習
 

ASP分頁代碼的學習

2008-09-18 07:06:53  編輯來源:互聯網  简体版  手機版  評論  字體: ||
 
 
  <%

  '******************************************************************

  '** 本程序名:"無限流"分頁程序

  '** 作者:Arbiter(AAsx)

  '** 版本:Million Level

  '**

  '** QQ:22222xx

  '** Email:Arbiter@21cn.com

  '** http://www.imagecity.org/

  '******************************************************************

  '**

  '** 【作者的話】

  '**

  '** 分頁程序無疑是許多網絡程序功能中一個比較麻煩的東西,事實上現在

  '** 爲止絕大部分人還是在使用傳統的分頁方法(Rs.PageSize=xx),而了解

  '** 數據庫操作的人都知道,這種傳統方式有個弊端:第一次打開頁面時,

  '** 它會預讀所有的記錄集,這當在數據大的時候,這將是致命的,而且接

  '** 下來的翻頁速度也會非常慢,很占用資源。對于十萬數量級以上的數據

  '** 庫這種傳統分頁方式已經顯得非常無力,更別說百萬級了(根本沒法操

  '** 作)。基于這種原因,促使我做了本程序。

  '**

  '** 【程序功能】

  '**

  '** 針對大型的數據庫進行分頁操作,理想的可操作的數據記錄量在200萬

  '** 以內(Max Level版將無數量限制,且無論數據庫多大,翻頁速度都是

  '** 不變),這是Million Level版分頁程序在賽揚1G、內存512、win2k環

  '** 境下的測試數據:

  '**

  '** SQLserver 2k + 10萬條記錄 + 每頁顯示20條:

  '** 平均翻頁速度:45ms

  '** SQLserver 2k + 100萬條記錄 + 每頁顯示20條:

  '** 平均翻頁速度:350ms

  '**

  '**

  '** 【分頁原理】

  '**

  '** 本程序不再使用Rs.PageSize的方式分頁,連接數據庫的遊標類型

  '** 也不是使用conn,1,x,而是conn,0,1,這應是最快的遊標類型了,不要

  '** 以爲這樣會使程序變得複雜,相反,程序非常簡單,如果你看不明白,

  '** 應該是我的編程風格你不習慣,而非程序複雜。

  '** "無限流"分頁的中心是:每頁只讀出需要顯示的記錄,不再象傳統

  '** 分頁程序預讀全部的數據,這正在本程序最大的優點--占用資源少,同

  '** 理速度也得到非常大的提升,特別在數據量越大的時候,它的速度優勢

  '** 越明顯(100萬記錄才350ms左右)。

  '** 當程序執行後,使用CurcorBegin和CurcorEnd記錄顯示的第一條記

  '** 錄和最後一條記錄的ID值,作爲下一次翻頁的標記,然後利用Top xx取

  '** 出需要的數據顯示,同時又再對ID值進行記錄。

  '**

  '** 【結 言】

  '**

  '** 本程序爲共享版,提供給各程序愛好者研究使用,若要轉載、散播、修

  '** 改或作其他用途,請尊重作者的辛勞,注明出處。

  '** 如果本程序中有錯漏、非最優化等缺點,請到www.csdn.net的Web開發/

  '** ASP欄目中發表討論,爲了中國軟件事業的發展,請不要固步自封:)

  '**

  '********************************************************************

  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 conn=Server.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:此統計是本程序中最耗資源的一部分,如果取消這段程序,速度會快上10倍左右

  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>"無限流"分頁程序作者:Arbiter</title>

  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

  <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">

  <tr align="center">

  <td colspan="2"><%Response.Write CurPageNum&"/"&TotalPages&"頁 總記錄數:"&TotalRecords%></td>

  <td><a href="mllist.asp">首頁</a> <a href=javascript:turnpage('back');>上一頁</a>

  <a href=javascript:turnpage('next');>下一頁</a> </td>

  </tr>

  </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>類別</td>

  </tr>

  <%

  TurnPageFS(DefRecordNum)

  Rs.Close

  Set Rs=Nothing

  conn.Close

  Set conn=Nothing

  %>

  </table>

  <table width="100%" border="0" cellspacing="0" cellpadding="3" bgcolor="#E2F5FE">

  <tr align="center">

  <td colspan="2"><%Response.Write CurPageNum&"/"&TotalPages&"頁 總記錄數:"&TotalRecords%></td>

  <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 " 第一條記錄的ID值(CursorBegin)="&CursorBegin&" "

  Response.Write "最後一條記錄的ID值(CursorEnd)="&CursorEnd&"<br><br>"

  %>

  <script language="javascript">

  function turnpage(func){

  var CurPageNum=<%=CurPageNum%>; //取得當前頁碼

  var CursorBegin=<%=CursorBegin%>; //取得第一個顯示的記錄的ID值

  var CursorEnd=<%=CursorEnd%>; //取得最後一個顯示的記錄的ID值

  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>

  Cnbruce的代碼:

  分頁樣例:[首頁] [上頁] [下頁] [尾頁] [頁次:4/5頁] [共86篇 20篇/頁] 轉到:_ 頁

  以下爲公用代碼,必須具備。

  <%filepath=request.servervariables("path_info")%>

  <%page=1 '設置變量初始值PAGE=1

  page=request.querystring("page") 'page值爲接受值

  rs.PageSize = 20 '每頁顯示記錄數

  if Not IsEmpty(trim(Request("Page"))) then '如果PAGE已經初始化...

  Page = CInt(Request("Page")) '接收PAGE並化爲數字型賦給PAGE變量

  if Page > rs.PageCount then '如果接收的頁數大于總頁數

  rs.AbsolutePage = rs.PageCount '設置當前顯示頁等于最後頁

  elseif Page <= 0 then '如果page小于等于0

  Page = 1 '設置PAGE等于第一頁

  else

  rs.AbsolutePage = Page '如果大于零,顯示當前頁等于接收的頁數

  end if

  End if

  Page = rs.AbsolutePage%>

  第一種分頁

  <%if rs.pagecount<>1 and rs.pagecount<>0 then%>'首先判斷頁總數不爲1和0

  <%if page>1 then%>

  <%if page<rs.pagecount then %>

  [<a Href="<%=filepath%>?Page=<% = 1%>">首頁</a>]

  [<a Href="<%=filepath%>?Page=<% = page -1 %>">上一頁</a>]

  [<a Href="<%=filepath%>?Page=<% = page + 1%>">下一頁</a>]

  [<a Href="<%=filepath%>?Page=<% = rs.PageCount%>">尾頁</a>]

  <%else%>

  [<a Href="<%=filepath%>?Page=<% = 1%>">首頁</a>]

  [<a Href="<%=filepath%>?Page=<% = page -1 %>">上一頁</a>]

  [下一頁] [尾頁]

  <% end if %>

  <%else%>

  [首頁] [上一頁]

  [<a Href="<%=filepath%>?Page=<% = page + 1%>">下一頁</a>]

  [<a Href="<%=filepath%>?Page=<% = rs.PageCount%>">尾頁</a>]

  <%end if %>

  <%else%>

  [首頁] [上一頁] [下一頁] [尾頁]

  <%end if%>

  第二種分頁

  <%if rs.pagecount<>1 and rs.pagecount<>0 then%>

  <%if page>1 then%>

  [<a Href="<%=filepath%>?Page=<% = 1%>">首頁</a>]

  [<a Href="<%=filepath%>?Page=<% = page -1 %>">上一頁</a>]

  <%if page<rs.pagecount then %>

  [<a Href="<%=filepath%>?Page=<% = page + 1%>">下一頁</a>]

  [<a Href="<%=filepath%>?Page=<% = rs.PageCount%>">尾頁</a>]

   <%else%>

   [下一頁] [尾頁]

  <% end if %>

  <%else%>

  [首頁] [上一頁]

  [<a Href="<%=filepath%>?Page=<% = page + 1%>">下一頁</a>]

  [<a Href="<%=filepath%>?Page=<% = rs.PageCount%>">尾頁</a>]

  <%end if %>

  <%else%>

  [首頁] [上一頁] [下一頁] [尾頁]

  <%end if%>

  第三種

  <%if rs.pagecount<>1 and rs.pagecount<>0 then%>

  <%if page<rs.pagecount then%>

  <%if page=1 then %>

  [首頁] [上一頁]

  <%else%>

  [<a Href="<%=filepath%>?Page=<% = 1%>">首頁</a>]

  [<a Href="<%=filepath%>?Page=<% =page -1 %>">上一頁</a>]

  <% end if %>

  [<a Href="<%=filepath%>?Page=<% = page + 1%>">下一頁</a>]

  [<a Href="<%=filepath%>?Page=<% = rs.PageCount%>">尾頁</a>]

  <%else%>

  [<a Href="<%=filepath%>?Page=<% = 1%>">首頁</a>]

  [<a Href="<%=filepath%>?Page=<% =page -1 %>">上一頁</a>]

  [下一頁] [尾頁]

  <%end if %>

  <%else%>

  [首頁] [上一頁] [下一頁] [尾頁]

  <%end if%>
 
 
 
上一篇《最簡單的ASP分頁代碼》
下一篇《ASP分頁顯示Recordset數據》
 
 
 
 
 
 
日版寵物情人插曲《Winding Road》歌詞

日版寵物情人2017的插曲,很帶節奏感,日語的,女生唱的。 最後聽見是在第8集的時候女主手割傷了,然後男主用嘴幫她吸了一下,插曲就出來了。 歌手:Def...

兄弟共妻,我成了他們夜裏的美食

老鍾家的兩個兒子很特別,就是跟其他的人不太一樣,魔一般的執著。兄弟倆都到了要結婚的年齡了,不管自家老爹怎麽磨破嘴皮子,兄弟倆說不娶就不娶,老父母爲兄弟兩操碎了心...

如何磨出破洞牛仔褲?牛仔褲怎麽剪破洞?

把牛仔褲磨出有線的破洞 1、具體工具就是磨腳石,下面墊一個硬物,然後用磨腳石一直磨一直磨,到把那塊磨薄了,用手撕開就好了。出來的洞啊很自然的。需要貓須的話調幾...

我就是掃描下圖得到了敬業福和愛國福

先來看下敬業福和愛國福 今年春節,支付寶再次推出了“五福紅包”活動,表示要“把欠大家的敬業福都還給大家”。 今天該活動正式啓動,和去年一樣,需要收集“五福”...

冰箱異味産生的原因和臭味去除的方法

有時候我們打開冰箱就會聞到一股異味,冰箱裏的這種異味是因爲一些物質發出的氣味的混合體,聞起來讓人惡心。 産生這些異味的主要原因有以下幾點。 1、很多人有這種習...

《極品家丁》1-31集大結局分集劇情介紹

簡介 《極品家丁》講述了現代白領林晚榮無意回到古代金陵,並追隨蕭二小姐化名“林三”進入蕭府,不料卻陰差陽錯上演了一出低級家丁拼搏上位的“林三升職記”。...

李溪芮《極品家丁》片尾曲《你就是我最愛的寶寶》歌詞

你就是我最愛的寶寶 - 李溪芮 (電視劇《極品家丁》片尾曲) 作詞:常馨內 作曲:常馨內 你的眉 又鬼馬的挑 你的嘴 又壞壞的笑 上一秒吵鬧 下...

烏梅的功效與作用以及烏梅的食用禁忌有哪些?

烏梅,又稱春梅,中醫認爲,烏梅味酸,性溫,無毒,具有安心、除熱、下氣、祛痰、止渴調中、殺蟲的功效,治肢體痛、肺痨病。烏梅泡水喝能治傷寒煩熱、止吐瀉,與幹姜一起制...

什麽是脂肪粒?如何消除臉部脂肪粒?

什麽是脂肪粒 在我們的臉上總會長一個個像脂肪的小顆粒,弄也弄不掉,而且顔色還是白白的。它既不是粉刺也不是其他的任何痘痘,它就是脂肪粒。 脂肪粒雖然也是由油脂...

網絡安全治理:國家安全保障的主要方向是打擊犯罪,而不是處置和懲罰受害者

來源:中國青年報 新的攻擊方法不斷湧現,黑客幾乎永遠占據網絡攻擊的上風,我們不可能通過技術手段杜絕網絡攻擊。國家安全保障的主要方向是打擊犯罪,而不是處置和懲罰...

河南夫妻在溫嶺網絡直播“造人”內容涉黃被刑事拘留

夫妻網絡直播“造人”爆紅   1月9日,溫嶺城北派出所接到南京警方的協查通告,他們近期打掉了一個涉黃直播APP平台。而根據掌握的線索,其中有一對涉案的夫妻主播...

如何防止牆紙老化?牆紙變舊變黃怎麽辦?

如何防止牆紙老化? (1)選擇透氣性好的牆紙 市場上牆紙的材質分無紡布的、木纖維的、PVC的、玻璃纖維基材的、布面的等,相對而言,PVC材質的牆紙最不透氣...

鮮肌之謎非日本生産VS鮮肌之謎假日貨是謠言

觀點一:破日本銷售量的“鮮肌之謎” 非日本生産 近一段時間,淘寶上架了一款名爲“鮮肌之謎的” 鲑魚卵巢美容液,號稱是最近日本的一款推出的全新護膚品,産品本身所...

中國最美古詩詞精選摘抄

系腰裙(北宋詞人 張先) 惜霜蟾照夜雲天,朦胧影、畫勾闌。人情縱似長情月,算一年年。又能得、幾番圓。 欲寄西江題葉字,流不到、五亭前。東池始有荷新綠,尚小如...

關于女人的經典語句

關于女人的經典語句1、【做一個獨立的女人】 思想獨立:有主見、有自己的人生觀、價值觀。有上進心,永遠不放棄自己的理想,做一份自己喜愛的事業,擁有快樂和成就...

未來我們可以和性愛機器人結婚嗎?

你想體驗機器人性愛嗎?你想和性愛機器人結婚嗎?如果你想,機器人有拒絕你的權利嗎? 近日,第二屆“國際人類-機器人性愛研討會”大會在倫敦金史密斯大學落下帷幕。而...

全球最變態的十個地方

10.土耳其地下洞穴城市 變態指數:★★☆☆☆ 這是土耳其卡帕多西亞的一個著名景點,傳說是當年基督教徒們爲了躲避戰爭而在此修建。裏面曾住著20000人,...

科學家稱,人類死亡後意識將在另外一個宇宙中繼續存活

據英國《每日快報》報道,一位科學家兼理論家Robert Lanza博士宣稱,世界上並不存在人類死亡,死亡的只是身體。他認爲我們的意識借助我們體內的能量生存,而且...

《屏裏狐》片頭曲《我愛狐狸精》歌詞是什麽?

《我愛狐狸精》 - 劉馨棋   (電視劇《屏裏狐》主題曲)   作詞:金十三&李旦   作曲:劉嘉   狐狸精 狐狸仙   千年修...

 
 
 
<% '****************************************************************** '** 本程序名:"無限流"分頁程序 '** 作者:Arbiter(AAsx) '** 版本:Million Level '** '** QQ:22222xx '** Email:[url=mailto:Arbiter@21cn.com]Arbiter@21cn.com[/url] '** [url=http://www.imagecity.org/]http://www.imagecity.org/[/url] '****************************************************************** '** '** 【作者的話】 '** '** 分頁程序無疑是許多網絡程序功能中一個比較麻煩的東西,事實上現在 '** 爲止絕大部分人還是在使用傳統的分頁方法(Rs.PageSize=xx),而了解 '** 數據庫操作的人都知道,這種傳統方式有個弊端:第一次打開頁面時, '** 它會預讀所有的記錄集,這當在數據大的時候,這將是致命的,而且接 '** 下來的翻頁速度也會非常慢,很占用資源。對于十萬數量級以上的數據 '** 庫這種傳統分頁方式已經顯得非常無力,更別說百萬級了(根本沒法操 '** 作)。基于這種原因,促使我做了本程序。 '** '** 【程序功能】 '** '** 針對大型的數據庫進行分頁操作,理想的可操作的數據記錄量在200萬 '** 以內(Max Level版將無數量限制,且無論數據庫多大,翻頁速度都是 '** 不變),這是Million Level版分頁程序在賽揚1G、內存512、win2k環 '** 境下的測試數據: '** '** SQLserver 2k + 10萬條記錄 + 每頁顯示20條: '** 平均翻頁速度:45ms '** SQLserver 2k + 100萬條記錄 + 每頁顯示20條: '** 平均翻頁速度:350ms '** '** '** 【分頁原理】 '** '** 本程序不再使用Rs.PageSize的方式分頁,連接數據庫的遊標類型 '** 也不是使用conn,1,x,而是conn,0,1,這應是最快的遊標類型了,不要 '** 以爲這樣會使程序變得複雜,相反,程序非常簡單,如果你看不明白, '** 應該是我的編程風格你不習慣,而非程序複雜。 '** "無限流"分頁的中心是:每頁只讀出需要顯示的記錄,不再象傳統 '** 分頁程序預讀全部的數據,這正在本程序最大的優點--占用資源少,同 '** 理速度也得到非常大的提升,特別在數據量越大的時候,它的速度優勢 '** 越明顯(100萬記錄才350ms左右)。 '** 當程序執行後,使用CurcorBegin和CurcorEnd記錄顯示的第一條記 '** 錄和最後一條記錄的ID值,作爲下一次翻頁的標記,然後利用Top xx取 '** 出需要的數據顯示,同時又再對ID值進行記錄。 '** '** 【結 言】 '** '** 本程序爲共享版,提供給各程序愛好者研究使用,若要轉載、散播、修 '** 改或作其他用途,請尊重作者的辛勞,注明出處。 '** 如果本程序中有錯漏、非最優化等缺點,請到[url=http://www.csdn.net]www.csdn.net[/url]的Web開發/ '** ASP欄目中發表討論,爲了中國軟件事業的發展,請不要固步自封:) '** '******************************************************************** 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 conn=Server.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:此統計是本程序中最耗資源的一部分,如果取消這段程序,速度會快上10倍左右 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>"無限流"分頁程序  作者:Arbiter</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <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"> <tr align="center"> <td colspan="2"><%Response.Write CurPageNum&"/"&TotalPages&"頁 總記錄數:"&TotalRecords%></td> <td><a href="mllist.asp">首頁</a> <a href=javascript:turnpage('back');>上一頁</a> <a href=javascript:turnpage('next');>下一頁</a> </td> </tr> </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>類別</td> </tr> <% TurnPageFS(DefRecordNum) Rs.Close Set Rs=Nothing conn.Close Set conn=Nothing %> </table> <table width="100%" border="0" cellspacing="0" cellpadding="3" bgcolor="#E2F5FE"> <tr align="center"> <td colspan="2"><%Response.Write CurPageNum&"/"&TotalPages&"頁 總記錄數:"&TotalRecords%></td> <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 " 第一條記錄的ID值(CursorBegin)="&CursorBegin&" " Response.Write "最後一條記錄的ID值(CursorEnd)="&CursorEnd&"<br><br>" %> <script language="javascript"> function turnpage(func){ var CurPageNum=<%=CurPageNum%>; //取得當前頁碼 var CursorBegin=<%=CursorBegin%>; //取得第一個顯示的記錄的ID值 var CursorEnd=<%=CursorEnd%>; //取得最後一個顯示的記錄的ID值 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> Cnbruce的代碼: 分頁樣例:[首頁] [上頁] [下頁] [尾頁] [頁次:4/5頁] [共86篇 20篇/頁] 轉到:_ 頁 以下爲公用代碼,必須具備。 <%filepath=request.servervariables("path_info")%> <%page=1 '設置變量初始值PAGE=1 page=request.querystring("page") 'page值爲接受值 rs.PageSize = 20 '每頁顯示記錄數 if Not IsEmpty(trim(Request("Page"))) then '如果PAGE已經初始化... Page = CInt(Request("Page")) '接收PAGE並化爲數字型賦給PAGE變量 if Page > rs.PageCount then '如果接收的頁數大于總頁數 rs.AbsolutePage = rs.PageCount '設置當前顯示頁等于最後頁 elseif Page <= 0 then '如果page小于等于0 Page = 1 '設置PAGE等于第一頁 else rs.AbsolutePage = Page '如果大于零,顯示當前頁等于接收的頁數 end if End if Page = rs.AbsolutePage%> 第一種分頁 <%if rs.pagecount<>1 and rs.pagecount<>0 then%>'首先判斷頁總數不爲1和0 <%if page>1 then%> <%if page<rs.pagecount then %> [<a Href="<%=filepath%>?Page=<% = 1%>">首頁</a>] [<a Href="<%=filepath%>?Page=<% = page -1 %>">上一頁</a>] [<a Href="<%=filepath%>?Page=<% = page + 1%>">下一頁</a>] [<a Href="<%=filepath%>?Page=<% = rs.PageCount%>">尾頁</a>] <%else%> [<a Href="<%=filepath%>?Page=<% = 1%>">首頁</a>] [<a Href="<%=filepath%>?Page=<% = page -1 %>">上一頁</a>] [下一頁] [尾頁] <% end if %> <%else%> [首頁] [上一頁] [<a Href="<%=filepath%>?Page=<% = page + 1%>">下一頁</a>] [<a Href="<%=filepath%>?Page=<% = rs.PageCount%>">尾頁</a>] <%end if %> <%else%> [首頁] [上一頁] [下一頁] [尾頁] <%end if%> 第二種分頁 <%if rs.pagecount<>1 and rs.pagecount<>0 then%> <%if page>1 then%> [<a Href="<%=filepath%>?Page=<% = 1%>">首頁</a>] [<a Href="<%=filepath%>?Page=<% = page -1 %>">上一頁</a>] <%if page<rs.pagecount then %> [<a Href="<%=filepath%>?Page=<% = page + 1%>">下一頁</a>] [<a Href="<%=filepath%>?Page=<% = rs.PageCount%>">尾頁</a>] <%else%> [下一頁] [尾頁] <% end if %> <%else%> [首頁] [上一頁] [<a Href="<%=filepath%>?Page=<% = page + 1%>">下一頁</a>] [<a Href="<%=filepath%>?Page=<% = rs.PageCount%>">尾頁</a>] <%end if %> <%else%> [首頁] [上一頁] [下一頁] [尾頁] <%end if%> 第三種 <%if rs.pagecount<>1 and rs.pagecount<>0 then%> <%if page<rs.pagecount then%> <%if page=1 then %> [首頁] [上一頁] <%else%> [<a Href="<%=filepath%>?Page=<% = 1%>">首頁</a>] [<a Href="<%=filepath%>?Page=<% =page -1 %>">上一頁</a>] <% end if %> [<a Href="<%=filepath%>?Page=<% = page + 1%>">下一頁</a>] [<a Href="<%=filepath%>?Page=<% = rs.PageCount%>">尾頁</a>] <%else%> [<a Href="<%=filepath%>?Page=<% = 1%>">首頁</a>] [<a Href="<%=filepath%>?Page=<% =page -1 %>">上一頁</a>] [下一頁] [尾頁] <%end if %> <%else%> [首頁] [上一頁] [下一頁] [尾頁] <%end if%>
󰈣󰈤
 
 
 
  免責聲明:本文僅代表作者個人觀點,與王朝網路無關。王朝網路登載此文出於傳遞更多信息之目的,並不意味著贊同其觀點或證實其描述,其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,並請自行核實相關內容。
 
 
小龍女彤彤之情溢皇都
龔潔
智能手機形象美女
崔潔彤
回家的路上----
中國一站(哈爾濱)
清明植物園的花。
桃花堤印象之豎版
 
>>返回首頁<<
 
 
 
 熱帖排行
 
 
 
 
© 2005- 王朝網路 版權所有