Coldfusion MX PageList 菜鸟版教程

2023-12-05 0 800

最初写的: 1、可以实现的功能: 首页,末页,上一页,下一页以及指定页的跳转。 首页末页有自动隐藏的功能。 跳转下拉菜单动态显示当前页码和总页数。 2、原理 核心原理参考CodefusionMX附带的CompassTravel例子中tripdetail.cfm的翻页原理。即假设当前页为第6页,对数据库进行查询,返回数maxRows定为1,查上一页就是对小于6的数进行倒序查询,得出的结果是5,4,3…,因为只返回一个值,所以就得到了5。其他的同理。 3、使用方法 将代码放入要实现pagelist的地方,用查找替换修改里面的cfsnippets,centers和center_ID,把他们换成实际使用的数据库名,表名和字段名。 4、局限与不足 因为学cf不到一个星期,对cfml还不是很熟悉,所以有些代码还是很繁琐,我觉得不足的地方有: (1)样式具有局限性,因为采用的是表单form,所以只能用button或图片来显示,不能用单纯的文字。 (2)修改还得要用查找替换。原来设想只改前面数据库定义的三个变量就可以,但后来发现在<cfout>里面使用查询的结果,必须要是确定的值,比如#gotopage.currentrow#,而不能再在里面使用动态参数,请问高手有什么好的解决办法? <!—数据库定义—> <cfsetdatabasename=\”cfsnippets\”><!—数据库名—> <cfsettablename=\”centers\”><!—表名—> <cfsettargetname=\”center_ID\”><!—字段名(一般为ID),定义这里的同时,还要用查找替换所有gotopage.center_ID里面的center_ID—> <!—处理跳转的动作—> <cfifIsDefined(\”Form.RecordID\”)><!—判断是否有跳转请求—> <cfqueryname=\”pageQuery\”datasource=\”#databasename#\”maxrows=\”1\”> SELECT#targetname#FROM#tablename# <cfifIsDefined(\”Form.btnPrev\”)><!—前一页页码—> WHERE#targetname#<#Form.RecordID# ORDERBY#targetname#DESC <cfelseifIsDefined(\”Form.btnNext\”)><!—后一页页码—> WHERE#targetname#>#Form.RecordID# ORDERBY#targetname# <cfelseifIsDefined(\”Form.btnFirst\”)><!—首页页码—> ORDERBY#targetname# <cfelseifIsDefined(\”Form.btnLast\”)><!—末页页码—> WHERE#targetname#>#Form.RecordID# ORDERBY#targetname#DESC <cfelseifIsDefined(\”Form.goto\”)><!—指定页码—> WHERE#targetname#=#Form.goto# </cfif> </cfquery> <cfifpageQuery.RecordCountis1> <cflocationurl=\”#cgi.SCRIPT_NAME#?ID=#pageQuery.center_ID#\”><!—跳转—> <cfelse> <cflocationurl=\”#cgi.SCRIPT_NAME#?ID=#page.RecordID#\”> </cfif> </cfif> <!—获取首页与末页所对应的ID—> <cfqueryname=\”gotopage\”datasource=\”#databasename#\”> SELECT#targetname#FROM#tablename# </cfquery> <cfoutputquery=\”gotopage\”> <cfifgotopage.currentrowis1> <cfsetfirstid=gotopage.center_ID><!—首页对应的ID—> <cfelseifgotopage.currentrowisgotopage.recordcount> <cfsetlastid=gotopage.center_ID><!—末页对应的ID—> </cfif> </cfoutput> <!—获取本页所对应的ID,如没有传递,默认为首页ID—> <cfifisdefined(\”url.id\”)> <cfsetpageid=url.id> <cfelse> <cfsetpageid=firstid> </cfif> <!—翻页主体部分—> <formaction=\”#cgi.SCRIPT_NAME#\”method=\”post\”> <inputtype=\”hidden\”name=\”RecordID\”value=\”<cfoutput>#pageid#</cfoutput>\”><!—隐藏字段传送本页ID—> <!–首页/上一页–> <cfifpageidneqfirstid> <inputtype=\”submit\”name=\”btnFirst\”value=\”首页\”> <inputtype=\”submit\”name=\”btnPrev\”value=\”上一页\”> </cfif> <!–页数,跳转–> <B>跳转到:</B>第<selectname=\”goto\”> <cfoutputquery=\”gotopage\”> <cfifgotopage.center_IDispageid> <optionvalue=\”#gotopage.center_ID#\”selected>#gotopage.currentrow#<!—使本页的数字处于被选择状态—> <cfelse> <optionvalue=\”#gotopage.center_ID#\”>#gotopage.currentrow# </cfif> </cfoutput> </option></select>/<cfoutput>#gotopage.recordcount#</cfoutput>页 <inputname=\”Go\”type=\”submit\”value=\”GO\”> <!–末页/下一页–> <cfifpageidneqlastid> <inputtype=\”submit\”name=\”btnNext\”value=\”下一页\”> <inputtype=\”submit\”name=\”btnLast\”value=\”末页\”> </cfif> </form> 后来发现不对劲,又进行了修改: 上面的代码只能用来list每页只有一个记录的page,如果一页有多个记录,上面的方法是不行的。 下面是我做了修改的代码,可以实现一个页面放多个记录了,每个页面放多少个记录可以在pagerow里面定义,此外也不需要通过查找替换来更改了,只要把初始化里面的四个参数定为自己相关的内容就行了,别的地方不需要改了。 代码比原来的又精简了不少:) <!—初始化—> <cfsetdatabasename=\”cfsnippets\”><!—数据库名—> <cfsettablename=\”centers\”><!—表名—> <cfsettargetname=\”center_ID\”><!—字段名(一般为ID)—> <cfsetpagerow=1><!—每页记录数—> <!—处理跳转的动作—> <cfifIsDefined(\”Form.thispage\”)><!—判断是否有跳转请求—> <cfifIsDefined(\”Form.btnPrev\”)><!—前一页页码—> <cfsetpageQuery=#Form.thispage#-1> <cfelseifIsDefined(\”Form.btnNext\”)><!—后一页页码—> <cfsetpageQuery=#Form.thispage#+1> <cfelseifIsDefined(\”Form.btnFirst\”)><!—首页页码—> <cfsetpageQuery=1> <cfelseifIsDefined(\”Form.btnLast\”)><!—末页页码—> <cfsetpageQuery=#Form.lastpage#> <cfelseifIsDefined(\”Form.goto\”)><!—指定页码—> <cfsetpageQuery=#Form.goto#> </cfif> <cflocationurl=\”#cgi.SCRIPT_NAME#?page=#pageQuery#\”><!—跳转—> </cfif> <!—获取末页页码—> <cfqueryname=\”gotopage\”datasource=\”#databasename#\”> SELECT#targetname#FROM#tablename# </cfquery> <cfsetlastpage=#gotopage.recordcount#\\pagerow><!—末页页码—> <!—获取本页页码,如没有传递,默认为1—> <cfifisdefined(\”url.page\”)> <cfsetpageid=url.page> <cfelse> <cfsetpageid=1> </cfif> <!—翻页主体部分—> <formaction=\”\”method=\”post\”> <inputtype=\”hidden\”name=\”thispage\”value=\”<cfoutput>#pageid#</cfoutput>\”><!—隐藏字段传送本页ID—> <inputtype=\”hidden\”name=\”lastpage\”value=\”<cfoutput>#lastpage#</cfoutput>\”><!—隐藏字段传送末页页码—> <!–首页/上一页–> <cfifpageidneq1> <inputtype=\”submit\”name=\”btnFirst\”value=\”首页\”> <inputtype=\”submit\”name=\”btnPrev\”value=\”上一页\”> </cfif> <!–页数,跳转–> <B>跳转到:</B>第<selectname=\”goto\”> <cfloopindex=\”pagenumber\”from=\”1\”to=\”#lastpage#\”> <cfoutput> <cfif#pagenumber#ispageid> <optionvalue=\”#pagenumber#\”selected>#pagenumber#<!—使本页的数字处于被选择状态—> <cfelse> <optionvalue=\”#pagenumber#\”>#pagenumber# </cfif> </cfoutput> </cfloop> </option></select>/<cfoutput>#lastpage#</cfoutput>页 <inputname=\”Go\”type=\”submit\”value=\”GO\”> <!–末页/下一页–> <cfifpageidneqlastpage> <inputtype=\”submit\”name=\”btnNext\”value=\”下一页\”> <inputtype=\”submit\”name=\”btnLast\”value=\”末页\”> </cfif> </form> 呵呵,一个菜鸟版的pagelist终于完成,十分简单,用的方法也挺笨的。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 ColdFusion Coldfusion MX PageList 菜鸟版教程 https://www.u-9.cn/jiaoben/coldfusion/100668.html

Coldfusion MX PageList 菜鸟版教程
上一篇:

已经没有上一篇了!

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务