Coldfusion MX PageList之骨灰版
更新時(shí)間:2007年03月15日 00:00:00 作者:
你要的功能都在這里,注意是PAGELIST,這是CCF核心代碼之一,相信能比我這代碼還少的PAGELIST少了.功能絕對(duì)沒有打折扣.包括 pagelist 首頁/末頁,上頁/下頁, 頁碼可以設(shè)置顯示數(shù)字多少,這避免了數(shù)量一多起來把pagelist拉的好長(zhǎng)....
在調(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代碼:可以保持成一個(gè)網(wǎng)頁,然后插入到你要顯示的地方就可以了.把里面的查詢變量名修改成你自己的查詢變量名就可以了.
<cfsetting enablecfoutputonly="Yes"><!--- 壓縮空白,提高性能 --->
<cfparam name="page" default=1 type="numeric"> <!--- 初始化本頁頁號(hào) --->
<cfparam name="n" default=7 type="numeric"> <!--- 設(shè)置可以顯示多少個(gè)頁 --->
<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)閉壓縮空白功能 --->
代碼拷貝框
以下是引用片段:
<cfsetting enablecfoutputonly="Yes"><!--- 壓縮空白,提高性能 --->
<cfparam name="page" default=1 type="numeric"> <!--- 初始化本頁頁號(hào) --->
<cfparam name="n" default=7 type="numeric"> <!--- 設(shè)置可以顯示多少個(gè)頁 --->
<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)閉壓縮空白功能 --->
GAME OVER.
說明一下上面沒有注釋的幾段控制語句:
<cfparam name="n" default=7 type="numeric">
這里設(shè)置默認(rèn)為7,也就是當(dāng)你在瀏覽12條的記錄的時(shí)候,會(huì)顯示 9 10 11 [12] 13 14 15
數(shù)一下,是不是7條,這是重要的一部分,你也可以設(shè)置為雙數(shù),但是效果不會(huì)怎么好,不平衡了.
另外上面還有自動(dòng)隱藏的功能.例如我在最后一頁了,不會(huì)出現(xiàn) 末頁和下一頁.
再次提醒一下:你必須把你自己的查詢變量名替換newarticle.recordcount這個(gè)我設(shè)置的變量名.最好用 查找/替換 一次全部換掉.
在調(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代碼:可以保持成一個(gè)網(wǎng)頁,然后插入到你要顯示的地方就可以了.把里面的查詢變量名修改成你自己的查詢變量名就可以了.
<cfsetting enablecfoutputonly="Yes"><!--- 壓縮空白,提高性能 --->
<cfparam name="page" default=1 type="numeric"> <!--- 初始化本頁頁號(hào) --->
<cfparam name="n" default=7 type="numeric"> <!--- 設(shè)置可以顯示多少個(gè)頁 --->
<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)閉壓縮空白功能 --->
代碼拷貝框
以下是引用片段:
<cfsetting enablecfoutputonly="Yes"><!--- 壓縮空白,提高性能 --->
<cfparam name="page" default=1 type="numeric"> <!--- 初始化本頁頁號(hào) --->
<cfparam name="n" default=7 type="numeric"> <!--- 設(shè)置可以顯示多少個(gè)頁 --->
<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)閉壓縮空白功能 --->
GAME OVER.
說明一下上面沒有注釋的幾段控制語句:
<cfparam name="n" default=7 type="numeric">
這里設(shè)置默認(rèn)為7,也就是當(dāng)你在瀏覽12條的記錄的時(shí)候,會(huì)顯示 9 10 11 [12] 13 14 15
數(shù)一下,是不是7條,這是重要的一部分,你也可以設(shè)置為雙數(shù),但是效果不會(huì)怎么好,不平衡了.
另外上面還有自動(dòng)隱藏的功能.例如我在最后一頁了,不會(huì)出現(xiàn) 末頁和下一頁.
再次提醒一下:你必須把你自己的查詢變量名替換newarticle.recordcount這個(gè)我設(shè)置的變量名.最好用 查找/替換 一次全部換掉.
相關(guān)文章
ColdFusion MX 遠(yuǎn)程服務(wù)實(shí)例入門教程
ColdFusion MX 遠(yuǎn)程服務(wù)實(shí)例入門教程...2007-03-03ColdFusionMX 編程指南 ColdFusionMX Basic Tag編程
ColdFusionMX 編程指南 ColdFusionMX Basic Tag編程...2007-03-03