Coldfusion MX PageList之骨灰版_ColdFusion

你要的功能都在这里,注意是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这个我设置的变量名.最好用 查找/替换 一次全部换掉. 

时间: 2024-10-04 01:21:22

Coldfusion MX PageList之骨灰版_ColdFusion的相关文章

ColdFusion MX 远程服务实例入门教程_ColdFusion

这个教程分二个部分:1 创建CF组件2创建flash应用.在开始之前请新建一个站点.一 创建CF组件:这里我们创建一个组件 定义二个函数[chaxun1,chaxun2],函数使用exampleapps 数据库源,返回一个查询结果对象, flash电影文件调用组件方法和接收返回的查询结果.chaxun1函数需要三个参数,这些参数从flash电影中传递过来.(参数为xing ming cheng)    创建的步奏如下所示: 使用dwmx(Dreamweaver MX的简称,下同), 文件→新建:

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

Coldfusion 结合 Access 中文显示问题 作者: Kyle 12/11/02  内容:  首先,在每一页要传递和处理中文的页面顶部加上如下代码(也可以放在application.cfm里,但在有些情况下会有问题):  <cfprocessingdirective pageencoding="gb2312">  <cfcontent type="text/html; charset=gb2312">  <cfset setE

使用Rico JavaScript库、ColdFusion MX 7和Windows Indexing Service构建一个

使用Rico JavaScript库.ColdFusion MX 7和Windows Indexing Service构建一个启用Ajax的搜索页面 几个月前,我和一些同事讨论关于将一个搜索工具添加到 Intranet 中(作 为一个向导)并将其扩展到企业网站中的可能性.此提议的主要目标之一是弄清 楚哪些访问者在查找 Web 内容并相应地改变了内容.我们中的一些人构想了一 个完全自定义的解决方案(我不是在开玩笑).他们建议在数据库服务器上构建 表以存放关键字以及与其相关的页面地址.关键字的提取将

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

设定你的根目录  作者: Kyle 2/16/03  内容:  设定你的根目录 网站开发人员向来都一直必须在相对路径 vs. 绝对路径这项议题上面打转.在 ColdFusion 环境里面,你可以在多个不同页面使用 CFINCLUDE 卷标,不过既然我们对于在哪个目录里面将会用到 CFINCLUDE 语法,因此在 CFINCLUDE 卷标里面使用相对路径经常会造成很多麻烦.  举例来说,某个被包含的选单里面可能有一个指向网站首页的连结,像下面这样:  <A HREF="index.cfm&q

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

一 简介 自从ColdFusion(以下简称CF)被Macromedia公司收购了以后,MM公司将CF在FLASH应用又提升了一个层次,利用CF可以动态的和FLASH集成.其中最长用的是HARPOON,但是CF在FLASH图表方面的作用却很少有人知道.今天我要讲的就是FLASH在CF中最被看好的特性之一,内建图表. 首先我们需要工具,动态的生成FLASH图表全靠Macromedia Generator,Generator是FLASH输出服务器用来发动CF制图的引擎.Generator制图一般的过

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

wait 蓝色理想CF里面没有提供象ASP里那样的广告组件,但是这并不能说明就不能做出功能强大的广告系统,这里我放上一个简单的广告轮换系统,也是我CCF论坛里面用的.功能,有显示次数和点击次数.在这基础上扩展比较容易,可以分类显示,下面的代码只是显示 大广告条.只是想抛砖引玉,大家举一反三,就能做出功能更加强大的广告系统出来.  <!--- 判断是否有地址传递 ---> <CFIF NOT IsDefined("URL.ADID")> <!--- 默认为显

用Coldfusion生成 OFFICE 文件的代码_ColdFusion

这几天在经典.5D碰到很多人在问,如何用CF生成EXCEL文件,昨天夜晚就写了一个示范程序放上来供大家参考. 我建议大家先自己慢慢体会,程序本身并不复杂,如果看不懂的再来问,最好不要看都没看就来发问...  好的,我就用我CCF论坛的数据库来做是实验,目的是在线打开EXCEL文件和在线生成EXCEL文件.文件内容就是CCF论坛所有版块的名称和编号.我顺便做了个生成WORD文件的.代码就改了一处.大家仔细看看. 在线打开OFFICE文件必须你系统安装了OFFICE.记住这点,要不然就会提示下载.

ColdFusionMX 编程指南 安装教程_ColdFusion

第一期:进入Macromedia ColdFusionMX 世界 程序开发:  教程编写:  MJking  版权所有:   系统及环境需求: Window2000/XP 256M RAM Coldfusion MX(Developer Edition) Microsoft Access 任何一款文本编辑器(本教程默认为Coldfusion Studio 5 + DreamweaverMX) 序言 在大家进入ColdFusion MX的世界之前,应该先了解一下Macromedia公司最新的MX家

Flash MX 2004新特性实例学习一

    Flash MX 2004的试用版终于可以下载了,它帮助文件中自带的例子很好地反映了2004中新增加的功能.下面我们通过学习这些例子的制作,来熟悉在2004中新增加的功能.这些例子都是从Flash MX 2004的帮助文档中来的.在我的windows2000中的保存路径是C:Documents and SettingsAdministratorLocal SettingsApplication DataMacromediaFlash MX 2004enConfigurationSampl