你要的功能都在這里,注意是PAGELIST,這是CCF核心代碼之一,相信能比我這代碼還少的PAGELIST少了.功能絕對沒有打折扣.包括 pagelist 首頁/末頁,上頁/下頁, 頁碼可以設(shè)置顯示數(shù)字多少,這避免了數(shù)量一多起來把pagelist拉的好長....
在調(diào)用PAGELIST的源文件中定義下面這些變量: <cfset rowsperpage=10> <!---每頁顯示記錄的數(shù)量-----> <cfparam name="URL.startrow" default="1" type="numeric"> <cfset totalrows=newarticle.Recordcount> <cfset endrow=Min(URL.startrow+rowsperpage-1,totalrows)> <cfset startRowNext=endrow+1> <cfset startrowBack=URL.startrow-rowsperpage>
Pagelist代碼:可以保持成一個網(wǎng)頁,然后插入到你要顯示的地方就可以了.把里面的查詢變量名修改成你自己的查詢變量名就可以了.
<cfsetting enablecfoutputonly="Yes"><!--- 壓縮空白,提高性能 ---> <cfparam name="page" default=1 type="numeric"> <!--- 初始化本頁頁號 ---> <cfparam name="n" default=7 type="numeric"> <!--- 設(shè)置可以顯示多少個頁 --->
<cfset min = page-Int(n/2)> <cfset max = page+Int(n/2)>
<cfif min LT 1> <cfset max = max - (min-1)> <cfset min = 1> </cfif>
<cfif max GT Ceiling(newarticle.recordcount/rowsPerPage)> <cfset min = min - (max - Ceiling(newarticle.recordcount/rowsPerPage))> <cfset max = Ceiling(newarticle.recordcount/rowsPerPage)> </cfif>
<cfif min lt 1> <cfset min=1> </cfif>
<!-- 首頁 first--> <cfif page NEQ 1> <cfoutput> <a href="#CGI.SCRIPT_NAME#?StartRow=1&Page=1" title="首頁"><<</a> </cfoutput> </cfif>
<!-- 頁數(shù) PAGELIST --> <cfloop index="x" from="#min#" to="#max#"> <cfset nextpage=x*rowsperpage-(rowsperpage-1)> <cfoutput> <cfif page eq x>[#x#] <cfelseif nextpage LTE newarticle.recordcount> <a href="#CGI.SCRIPT_NAME#?StartRow=#nextpage#&Page=#x#">#x#</a> </cfif> </cfoutput> </cfloop>
<!-- 末頁 Last --> <cfset laststartrow=newarticle.recordcount-rowsPerPage+1> <cfif page NEQ MAX> <cfoutput> <a href="#CGI.SCRIPT_NAME#?StartRow=#laststartrow#&Page=#Ceiling(newarticle.recordcount/rowsPerPage)#">>></a> </cfoutput> </cfif>
<!-- 上一頁/下一頁 --> <cfoutput> <CFIF startrowBack GT 0> <cfif page EQ 1> <CFSET NTback=1> <cfelse> <cfset NTback=page-1> </cfif> <a href="#CGI.SCRIPT_NAME#?startrow=#startrowback#&page=#NTback#">上一頁</a> </CFIF> <CFIF startrownext LTE totalrows> <cfset NTnext=page+1> <a href="#CGI.SCRIPT_NAME#?startrow=#startrownext#&page=#NTnext#">下一頁</a> </CFIF> </cfoutput> <cfsetting enablecfoutputonly="no"><!--- 別忘記了關(guān)閉壓縮空白功能 --->
代碼拷貝框
[Ctrl+A 全部選擇 然后拷貝]
GAME OVER. 說明一下上面沒有注釋的幾段控制語句: <cfparam name="n" default=7 type="numeric"> 這里設(shè)置默認(rèn)為7,也就是當(dāng)你在瀏覽12條的記錄的時候,會顯示 9 10 11 [12] 13 14 15 數(shù)一下,是不是7條,這是重要的一部分,你也可以設(shè)置為雙數(shù),但是效果不會怎么好,不平衡了. 另外上面還有自動隱藏的功能.例如我在最后一頁了,不會出現(xiàn) 末頁和下一頁.
再次提醒一下:你必須把你自己的查詢變量名替換newarticle.recordcount這個我設(shè)置的變量名.最好用 查找/替換 一次全部換掉.
此文章只允許藍色經(jīng)典獨家刊登,嚴(yán)禁轉(zhuǎn)載
本文鏈接:http://m.95time.cn/tech/program/2003/316.asp
出處:藍色理想
責(zé)任編輯:無意
◎進入論壇網(wǎng)絡(luò)編程版塊參加討論
|