Coldfusion MX PageList之骨灰版

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

(0)

相关推荐

  • Coldfusion MX PageList之骨灰版

    你要的功能都在这里,注意是PAGELIST,这是CCF核心代码之一,相信能比我这代码还少的PAGELIST少了.功能绝对没有打折扣.包括 pagelist 首页/末页,上页/下页, 页码可以设置显示数字多少,这避免了数量一多起来把pagelist拉的好长....  在调用PAGELIST的源文件中定义下面这些变量:  <cfset rowsperpage=10> <!---每页显示记录的数量-----> <cfparam name="URL.startrow&quo

  • Coldfusion MX PageList 菜鸟版教程

    最初写的: 1.可以实现的功能: 首页,末页,上一页,下一页以及指定页的跳转. 首页末页有自动隐藏的功能. 跳转下拉菜单动态显示当前页码和总页数. 2.原理 核心原理参考Codefusion MX 附带的Compass Travel例子 中tripdetail.cfm的翻页原理.即假设当前页为第6页,对数据库进行查询,返回数maxRows 定为1,查上一页就是对小于6的数进行倒序查询,得出的结果是5,4,3...,因为只返回一个值,所以就得到了5.其他的同理. 3.使用方法 将代码放入要实现pa

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

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

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

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

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

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

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

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

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

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

  • ColdFusionMX 编程指南 安装教程

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

  • ColdFusionMX 编程指南 基础管理操作以及入门程

    第二期:基础管理操作以及入门程序 序言 在讲解ColdFusion MX的基础管理操作以及入门程序之前,先来了解一下ColdFusion MX各种版本之间的差别.ColdFusion MX目前分为商用版本和开发者版本两部分,而商用版本又包括专业版和企业版两种.顾名思义,开发者版本是提供给开发者个人使用的版本,该版本在功能上做了一些限制.比如使用开发者版本的ColdFusion MX Server在同时访问的ip上做了限制,还有就是没有Macromedia Cluster的支持(web均衡负载),

  • 新手配置 PHP 调试环境(IIS+PHP+MYSQL)

    目的:配置运行PHP的环境(IIS+PHP+MYSQL+CF+Perl)支持php+cgi+asp+jsp等 操作系统:windows2000 advance server(sp3)简体中文版 需要相关软件: 一:php-4.3.0-Win32.zip ,到相应站点下载,我上传文件不方便,以下同. 二:ActivePerl-5.6.1.635-MSWin32-x86.msi ,注意,必须下载安装文件,就是说.msi的,不要下原代码了,我也不会弄原代码,加装这个支持cgi,如果你不想支持cgi也可

随机推荐