Coldfusion MX PageList 菜鸟版教程

  最初写的:

  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#

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  跳转到: 第/#gotopage.recordcount#

  

  

  

  

  

  

  

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

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

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

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

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  SELECT #targetname# FROM #tablename#

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  跳转到: 第/#lastpage#

  

  

  

  

  

  

  

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