Coldfusion MX PageList 菜鸟版教程(赛雷话车)真没想到

随心笔谈1年前 (2023)发布 admin
143 0


最初写的: 

1、可以实现的功能:

首页,末页,上一页,下一页以及指定页的跳转。

首页末页有自动隐藏的功能。

跳转下拉菜单动态显示当前页码和总页数。 

2、原理 

核心原理参考Codefusion MX 附带的Compass Travel例子 中tripdetail.cfm的翻页原理。即假设当前页为第6页,对数据库进行查询,返回数maxRows 定为1,查上一页就是对小于6的数进行倒序查询,得出的结果是5,4,3…,因为只返回一个值,所以就得到了5。其他的同理。 

3、使用方法 

将代码放入要实现pagelist的地方,用查找替换修改里面的cfsnippets,centers和center_ID,把他们换成实际使用的数据库名,表名和字段名。 

4、局限与不足 

因为学cf不到一个星期,对cfml还不是很熟悉,所以有些代码还是很繁琐,我觉得不足的地方有:

(1)样式具有局限性,因为采用的是表单form,所以只能用button或图片来显示,不能用单纯的文字。

(2)修改还得要用查找替换。原来设想只改前面数据库定义的三个变量就可以,但后来发现在里面使用查询的结果,必须要是确定的值,比如#gotopage.currentrow#,而不能再在里面使用动态参数,请问高手有什么好的解决办法? 

SELECT #targetname# FROM #tablename#            

WHERE #targetname# < #Form.RecordID#

ORDER BY #targetname# DESC        

WHERE #targetname# > #Form.RecordID#

ORDER BY #targetname#        

ORDER BY #targetname#        

WHERE #targetname# > #Form.RecordID#

ORDER BY #targetname# DESC

WHERE #targetname# = #Form.goto#

SELECT #targetname# FROM #tablename#

#pageid#”>
 

跳转到: 

#gotopage.currentrow#

#gotopage.currentrow#

/#gotopage.recordcount#页

后来发现不对劲,又进行了修改: 

上面的代码只能用来list每页只有一个记录的page,如果一页有多个记录,上面的方法是不行的。 

下面是我做了修改的代码,可以实现一个页面放多个记录了,每个页面放多少个记录可以在pagerow里面定义,此外也不需要通过查找替换来更改了,只要把初始化里面的四个参数定为自己相关的内容就行了,别的地方不需要改了。 

代码比原来的又精简了不少 🙂 

SELECT #targetname# FROM #tablename#

#pageid#”>

#lastpage#”>

跳转到: 

#pagenumber#

#pagenumber#

/#lastpage#页

呵呵,一个菜鸟版的pagelist终于完成,十分简单,用的方法也挺笨的。

© 版权声明

相关文章