Coldfusion MX PageList之骨灰版

所属分类: 脚本专栏 / ColdFusion 阅读数: 1046
收藏 0 赞 0 分享
你要的功能都在这里,注意是PAGELIST,这是CCF核心代码之一,相信能比我这代码还少的PAGELIST少了.功能绝对没有打折扣.包括 pagelist 首页/末页,上页/下页, 页码可以设置显示数字多少,这避免了数量一多起来把pagelist拉的好长.... 
在调用PAGELIST的源文件中定义下面这些变量: 
<cfset rowsperpage=10> <!---每页显示记录的数量----->
<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代码:可以保持成一个网页,然后插入到你要显示的地方就可以了.把里面的查询变量名修改成你自己的查询变量名就可以了.


<cfsetting enablecfoutputonly="Yes"><!--- 压缩空白,提高性能 ---> 
<cfparam name="page" default=1 type="numeric"> <!--- 初始化本页页号 ---> 
<cfparam name="n" default=7 type="numeric"> <!--- 设置可以显示多少个页 ---> 

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

<!-- 页数 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"><!--- 别忘记了关闭压缩空白功能 ---> 


代码拷贝框
以下是引用片段:

<cfsetting enablecfoutputonly="Yes"><!--- 压缩空白,提高性能 ---> 
<cfparam name="page" default=1 type="numeric"> <!--- 初始化本页页号 ---> 
<cfparam name="n" default=7 type="numeric"> <!--- 设置可以显示多少个页 ---> 

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

<!-- 页数 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"><!--- 别忘记了关闭压缩空白功能 --->

 


GAME OVER.
说明一下上面没有注释的几段控制语句:
<cfparam name="n" default=7 type="numeric">
这里设置默认为7,也就是当你在浏览12条的记录的时候,会显示 9 10 11 [12] 13 14 15
数一下,是不是7条,这是重要的一部分,你也可以设置为双数,但是效果不会怎么好,不平衡了. 
另外上面还有自动隐藏的功能.例如我在最后一页了,不会出现 末页和下一页. 

再次提醒一下:你必须把你自己的查询变量名替换newarticle.recordcount这个我设置的变量名.最好用 查找/替换 一次全部换掉. 
更多精彩内容其他人还在看

ColdFusionMX 编程指南 ColdFusionMX Basic Tag编程

ColdFusionMX 编程指南 ColdFusionMX Basic Tag编程
收藏 0 赞 0 分享

ColdFusionMX 编程指南 ColdFusionMX中的循环

ColdFusionMX 编程指南 ColdFusionMX中的循环
收藏 0 赞 0 分享

Coldfusion MX技巧精华收集(1)第1/5页

Coldfusion MX技巧精华收集(1)
收藏 0 赞 0 分享

Coldfusion MX技巧精华收集之2第1/6页

Coldfusion MX技巧精华收集之2
收藏 0 赞 0 分享

ColdFusion MX 轻松制作 FLASH的方法第1/3页

ColdFusion MX 轻松制作 FLASH的方法
收藏 0 赞 0 分享

Coldfusion MX PageList之骨灰版

Coldfusion MX PageList之骨灰版
收藏 0 赞 0 分享

Coldfusion MX广告轮换系统制作教程

Coldfusion MX广告轮换系统制作教程
收藏 0 赞 0 分享

用Coldfusion生成 OFFICE 文件的代码

用Coldfusion生成 OFFICE 文件的代码
收藏 0 赞 0 分享

Coldfusion MX PageList 菜鸟版教程

Coldfusion MX PageList 菜鸟版教程
收藏 0 赞 0 分享

ColdfusionMX与FlashMX通讯的方法

ColdfusionMX与FlashMX通讯的方法
收藏 0 赞 0 分享
查看更多