你要的功能都在这里,注意是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>
<cfsetting enablecfoutputonly="yes"><!--- 压缩空白,提高性能 ---> <cfset min = page-int(n/2)> <cfif min lt 1> <cfif max gt ceiling(newarticle.recordcount/rowsperpage)> <cfif min lt 1> <!-- 首页 first--> <!-- 页数 pagelist --> <!-- 末页 last --> <!-- 上一页/下一页 -->
pagelist代码:可以保持成一个网页,然后插入到你要显示的地方就可以了.把里面的查询变量名修改成你自己的查询变量名就可以了.
<cfparam name="page" default=1 type="numeric"> <!--- 初始化本页页号 --->
<cfparam name="n" default=7 type="numeric"> <!--- 设置可以显示多少个页 --->
<cfset max = page+int(n/2)>
<cfset max = max - (min-1)>
<cfset min = 1>
</cfif>
<cfset min = min - (max - ceiling(newarticle.recordcount/rowsperpage))>
<cfset max = ceiling(newarticle.recordcount/rowsperpage)>
</cfif>
<cfset min=1>
</cfif>
<cfif page neq 1>
<cfoutput>
<a href="#cgi.script_name#?startrow=1&page=1" title="首页"><<</a>
</cfoutput>
</cfif>
<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>
<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"><!--- 别忘记了关闭压缩空白功能 --->
代码拷贝框
[ctrl+a 全部选择 然后拷贝]
game over.
说明一下上面没有注释的几段控制语句:
<cfparam name="n" default=7 type="numeric">
这里设置默认为7,也就是当你在浏览12条的记录的时候,会显示 9 10 11 [12] 13 14 15
数一下,是不是7条,这是重要的一部分,你也可以设置为双数,但是效果不会怎么好,不平衡了.
另外上面还有自动隐藏的功能.例如我在最后一页了,不会出现 末页和下一页.
再次提醒一下:你必须把你自己的查询变量名替换newarticle.recordcount这个我设置的变量名.最好用 查找/替换 一次全部换掉.
此文章只允许蓝色经典独家刊登,严禁转载
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器