>近日一直在研究如何才能寫出高小的分頁(yè)算法,大概整理了一下,思路如下:首先數(shù)據(jù)庫(kù)里需要有一個(gè)自動(dòng)編號(hào)字段(ID)。然后第一次訪問(wèn)的時(shí)候,取出所有記錄,定制好每頁(yè)的記錄數(shù)PageSize,計(jì)算出頁(yè)數(shù),然后根據(jù)頁(yè)數(shù)建立一">
asp中如何快速分頁(yè)!--

asp中如何快速分頁(yè)!--

ID:22369897

大?。?1.50 KB

頁(yè)數(shù):7頁(yè)

時(shí)間:2018-10-28

asp中如何快速分頁(yè)!--_第1頁(yè)
asp中如何快速分頁(yè)!--_第2頁(yè)
asp中如何快速分頁(yè)!--_第3頁(yè)
asp中如何快速分頁(yè)!--_第4頁(yè)
asp中如何快速分頁(yè)!--_第5頁(yè)
資源描述:

《asp中如何快速分頁(yè)!--》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。

1、Asp中如何快速分頁(yè)!>>近日一直在研究如何才能寫出高小的分頁(yè)算法,大概整理了一下,思路如下:首先數(shù)據(jù)庫(kù)里需要有一個(gè)自動(dòng)編號(hào)字段(ID)。然后第一次訪問(wèn)的時(shí)候,取出所有記錄,定制好每頁(yè)的記錄數(shù)PageSize,計(jì)算出頁(yè)數(shù),然后根據(jù)頁(yè)數(shù)建立一個(gè)一維數(shù)組PageId(PageCount),PageId(0)保存記錄初試條件,然后對(duì)應(yīng)每個(gè)元素保存每頁(yè)對(duì)應(yīng)的ID邊界碼(1,ID邊界碼:如果數(shù)據(jù)庫(kù)記錄ID記錄序列如下1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16假設(shè)需要按照ID順序排序的話,PageSize=5,Pagecount=4

2、,PageId(4)數(shù)組PageId的值分別為PageId(0)=1,PageId(1)=5,PageId(2)=10,PageId(3)=15,PageId(4)=16當(dāng)訪問(wèn)第i頁(yè)的時(shí)候就直接找[PageId(i-1),PageId(i))之間的記錄,這樣可以保證每次取的記錄都只是PageSize條記錄。假設(shè)需要按照ID倒序排列的話,數(shù)組PageId的值分別為PageId(0)=16,PageId(1)=12,PageId(2)=7,PageId(3)=2,PageId(4)=1,當(dāng)訪問(wèn)第i頁(yè)的時(shí)候就直接查找ID屬于[PageId(i-1),PageI

3、d(i)))將數(shù)組PageId()保存在Application()中,以便訪問(wèn),這樣,只是第一次訪問(wèn)分頁(yè)程序的時(shí)候便初始化Application()。代碼部分如下:(下面稱為新程序)<%Time1=Timer()DimConnSetConn=Server.CreateObject("Adodb.Connection")Conn.open"Driver={MicroSoftAccessDriver(*.mdb)};Dbq="Server.MapPath("db.mdb")DimPage,PageCounts,PageId,PageListDimRs,

4、SqlDimIsInit,iIsInit=False''標(biāo)志為,用來(lái)判斷Application("PageId")是否初始化PageList=20''設(shè)置每頁(yè)顯示20條數(shù)據(jù)SetRs=Server.CreateObject("Adodb.Recordset")Page=Request.QueryString("Page")''注意頁(yè)碼需要檢查類型IfIsEmpty(Application("PageId"))Then''如果Application("PageId")還未初始化,則先進(jìn)行初始化Response.ove(PageList)NextRs.Mov

5、eLastPageId(PageCounts)=Rs("ID")Application.Lock()Application("PageId")=PageIdApplication.UnLock()EndIfRs.CloseEndIfIdStart=Clng(Application("PageId")(Page-1))IdEnd=Clng(Application("PageId")(Page))Sql="Select*fromtestp;IdStart"andid>"IdEnd""Rs.openSql,Conn,1,1oveNexticroSoftA

6、ccessDriver(*.mdb)};Dbq="Server.MapPath("db.mdb")DimPage,PageCounts,PageListDimRs,SqlPageList=20Page=Request.QueryString("Page")SetRs=Server.CreateObjec12下一頁(yè)>>>>這篇文章來(lái)自..,。t("Adodb.Recordset")Sql="Select*fromtestorderbyiddesc"Rs.OpenSql,Conn,1,1IfPage=""ThenPage=1IfNot(Rs.eofOrRs.

7、Bof)ThenRs.PageSize=PageListPageCounts=Rs.PageCountRs.AbsolutePage=PageEndIfFori=1toPageListIfRs.eofThenExitForResponse.oveNextnextFori=1ToPageCountsResponse.p;i" ")NextTime2=Timer()Response.p;(Time2-Time1)*1000)%>其實(shí),總體的思想就是,建立一個(gè)Application("PageId")全局?jǐn)?shù)組,每個(gè)元素都保存頁(yè)面所區(qū)記錄的ID區(qū)間,比如,

8、Application("PageId")(0)保存第一個(gè)元素的ID,然后App

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。