亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

Coldfusion MX PageList 菜鳥版教程

2024-07-21 23:03:57
字體:
來源:轉載
供稿:網友
最初寫的: 

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)修改還得要用查找替換。原來設想只改前面數據庫定義的三個變量就可以,但后來發現在<cfout>里面使用查詢的結果,必須要是確定的值,比如#gotopage.currentrow#,而不能再在里面使用動態參數,請問高手有什么好的解決辦法? 




<!--- 數據庫定義 --->
<cfset databasename="cfsnippets"><!--- 數據庫名 --->
<cfset tablename="centers"><!--- 表名 --->
<cfset targetname="center_ID"><!--- 字段名(一般為ID),定義這里的同時,還要用查找替換所有gotopage.center_ID里面的center_ID ---> 

<!--- 處理跳轉的動作 --->
<cfif IsDefined("Form.RecordID")><!--- 判斷是否有跳轉請求 --->
<cfquery name="pageQuery" datasource="#databasename#" maxrows="1">
SELECT #targetname# FROM #tablename#            
<cfif IsDefined("Form.btnPrev")><!--- 前一頁頁碼 --->
WHERE #targetname# < #Form.RecordID#
ORDER BY #targetname# DESC        
<cfelseif IsDefined("Form.btnNext")><!--- 后一頁頁碼 --->
WHERE #targetname# > #Form.RecordID#
ORDER BY #targetname#        
<cfelseif IsDefined("Form.btnFirst")><!--- 首頁頁碼 --->
ORDER BY #targetname#        
<cfelseif IsDefined("Form.btnLast")><!--- 末頁頁碼 --->
WHERE #targetname# > #Form.RecordID#
ORDER BY #targetname# DESC
<cfelseif IsDefined("Form.goto")><!--- 指定頁碼 --->
WHERE #targetname# = #Form.goto#
</cfif>
</cfquery>
<cfif pageQuery.RecordCount is 1>
<cflocation url="#cgi.SCRIPT_NAME#?ID=#pageQuery.center_ID#"><!--- 跳轉 --->
<cfelse>
<cflocation url="#cgi.SCRIPT_NAME#?ID=#page.RecordID#">
</cfif>
</cfif> 

<!--- 獲取首頁與末頁所對應的ID --->
<cfquery name="gotopage" datasource="#databasename#" >
SELECT #targetname# FROM #tablename#
</cfquery>
<cfoutput query="gotopage">
<cfif gotopage.currentrow is 1>
<cfset firstid=gotopage.center_ID><!--- 首頁對應的ID --->
<cfelseif gotopage.currentrow is gotopage.recordcount>
<cfset lastid=gotopage.center_ID><!--- 末頁對應的ID --->
</cfif>
</cfoutput> 

<!--- 獲取本頁所對應的ID,如沒有傳遞,默認為首頁ID --->
<cfif isdefined("url.id")>
<cfset pageid=url.id>
<cfelse>
<cfset pageid=firstid>
</cfif> 

<!--- 翻頁主體部分 --->
<form action="#cgi.SCRIPT_NAME#" method="post">
<input type="hidden" name="RecordID" value="<cfoutput>#pageid#</cfoutput>"><!--- 隱藏字段傳送本頁ID ---> 

<!-- 首頁/上一頁-->
<cfif pageid neq firstid>
<input type="submit" name="btnFirst" value="首頁">
<input type="submit" name="btnPrev" value="上一頁">
</cfif> 

<!-- 頁數 ,跳轉-->
<B>跳轉到: </B>第<select name="goto">
<cfoutput query="gotopage">
<cfif gotopage.center_ID is pageid>
<option value="#gotopage.center_ID#" selected>#gotopage.currentrow#<!--- 使本頁的數字處于被選擇狀態 --->
<cfelse>
<option value="#gotopage.center_ID#">#gotopage.currentrow#
</cfif>
</cfoutput>
</option></select>/<cfoutput >#gotopage.recordcount#</cfoutput>頁
<input name="Go" type="submit" value="GO"> 

<!-- 末頁/下一頁-->
<cfif pageid neq lastid>
<input type="submit" name="btnNext" value="下一頁">
<input type="submit" name="btnLast" value="末頁">
</cfif>
</form> 


后來發現不對勁,又進行了修改: 

上面的代碼只能用來list每頁只有一個記錄的page,如果一頁有多個記錄,上面的方法是不行的。 

下面是我做了修改的代碼,可以實現一個頁面放多個記錄了,每個頁面放多少個記錄可以在pagerow里面定義,此外也不需要通過查找替換來更改了,只要把初始化里面的四個參數定為自己相關的內容就行了,別的地方不需要改了。 

代碼比原來的又精簡了不少 :) 


<!--- 初始化 --->
<cfset databasename="cfsnippets"><!--- 數據庫名 --->
<cfset tablename="centers"><!--- 表名 --->
<cfset targetname="center_ID"><!--- 字段名(一般為ID) --->
<cfset pagerow=1><!--- 每頁記錄數 --->
<!--- 處理跳轉的動作 --->
<cfif IsDefined("Form.thispage")><!--- 判斷是否有跳轉請求 --->        
<cfif IsDefined("Form.btnPrev")><!--- 前一頁頁碼 --->
<cfset pageQuery=#Form.thispage#-1>    
<cfelseif IsDefined("Form.btnNext")><!--- 后一頁頁碼 --->
<cfset pageQuery=#Form.thispage#+1>        
<cfelseif IsDefined("Form.btnFirst")><!--- 首頁頁碼 --->
<cfset pageQuery=1>        
<cfelseif IsDefined("Form.btnLast")><!--- 末頁頁碼 --->
<cfset pageQuery=#Form.lastpage#>
<cfelseif IsDefined("Form.goto")><!--- 指定頁碼 --->
<cfset pageQuery=#Form.goto#>
</cfif>
<cflocation url="#cgi.SCRIPT_NAME#?page=#pageQuery#"><!--- 跳轉 --->
</cfif>
<!--- 獲取末頁頁碼 --->
<cfquery name="gotopage" datasource="#databasename#" >
SELECT #targetname# FROM #tablename#
</cfquery>
<cfset lastpage=#gotopage.recordcount#/pagerow><!--- 末頁頁碼 --->
<!--- 獲取本頁頁碼,如沒有傳遞,默認為1 --->
<cfif isdefined("url.page")>
<cfset pageid=url.page>
<cfelse>
<cfset pageid=1>
</cfif>
<!--- 翻頁主體部分 --->
<form action="" method="post">
<input type="hidden" name="thispage" value="<cfoutput>#pageid#</cfoutput>"><!--- 隱藏字段傳送本頁ID --->
<input type="hidden" name="lastpage" value="<cfoutput>#lastpage#</cfoutput>"><!--- 隱藏字段傳送末頁頁碼 --->
<!-- 首頁/上一頁-->
<cfif pageid neq 1>
<input type="submit" name="btnFirst" value="首頁">
<input type="submit" name="btnPrev" value="上一頁">
</cfif>
<!-- 頁數 ,跳轉-->
<B>跳轉到: </B>第<select name="goto">
<cfloop index="pagenumber" from="1" to="#lastpage#">
<cfoutput>
<cfif #pagenumber# is pageid>
<option value="#pagenumber#" selected>#pagenumber#<!--- 使本頁的數字處于被選擇狀態 --->
<cfelse>
<option value="#pagenumber#">#pagenumber#
</cfif>
</cfoutput>
</cfloop>
</option></select>/<cfoutput >#lastpage#</cfoutput>頁
<input name="Go" type="submit" value="GO">
<!-- 末頁/下一頁-->
<cfif pageid neq lastpage>
<input type="submit" name="btnNext" value="下一頁">
<input type="submit" name="btnLast" value="末頁">
</cfif>
</form> 


呵呵,一個菜鳥版的pagelist終于完成,十分簡單,用的方法也挺笨的。
 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色综合久久88色综合天天看泰| 成人国产精品久久久| 日韩高清欧美高清| 亚洲va欧美va国产综合久久| 精品欧美国产一区二区三区| 亚洲成人网av| 亚洲色图校园春色| 久久久久久久成人| 亚洲情综合五月天| 成人午夜一级二级三级| 亚洲精品www| 亚洲国产成人爱av在线播放| 亚洲欧美精品中文字幕在线| 欧美视频国产精品| www.xxxx欧美| 日本高清视频精品| 国产欧美日韩视频| 麻豆一区二区在线观看| 久久九九精品99国产精品| 中文字幕久久精品| 欧美日韩久久久久| 国产精品久久久久久久久粉嫩av| 欧美在线视频网站| 欧美大秀在线观看| 久久午夜a级毛片| 国内精品视频在线| 亚洲成人精品视频| 国产精品久久久久久久久久久新郎| 91麻豆桃色免费看| 久久99久久99精品免观看粉嫩| 日韩国产中文字幕| 色婷婷av一区二区三区在线观看| 疯狂做受xxxx高潮欧美日本| 中文字幕在线视频日韩| 欧美激情乱人伦| 性亚洲最疯狂xxxx高清| 欧美自拍视频在线| 成人免费网站在线| 日韩精品视频中文在线观看| 亚洲影视九九影院在线观看| 美女久久久久久久| 日本不卡视频在线播放| 国产国产精品人在线视| 欧美大成色www永久网站婷| 亚洲老头老太hd| 91九色在线视频| 国产成人高潮免费观看精品| 911国产网站尤物在线观看| 亚洲色在线视频| 成人淫片在线看| 久久久久久国产精品久久| 亚洲欧美综合v| 国产亚洲精品日韩| 国产自产女人91一区在线观看| 91夜夜揉人人捏人人添红杏| 2019中文字幕全在线观看| 国产精品久久久av久久久| 欧美一级在线播放| 欧美黄网免费在线观看| 亚洲福利视频在线| 国产精品夜色7777狼人| 国产精品1234| 久久国产一区二区三区| 亚洲美女在线看| 91久久久久久久久久久| 狠狠躁夜夜躁人人爽天天天天97| 亚洲石原莉奈一区二区在线观看| 欧美成人激情视频| 亚洲精选在线观看| 久久久av一区| 91精品久久久久久| 亚洲欧美激情视频| 欧美一区二粉嫩精品国产一线天| 国产精品福利网站| 亚洲乱码一区av黑人高潮| 精品国产鲁一鲁一区二区张丽| 久久久99久久精品女同性| 国产精品久久久久免费a∨大胸| 久久精品99国产精品酒店日本| 欧美成人午夜影院| 日韩成人小视频| 日韩美女av在线免费观看| 欧美一级黑人aaaaaaa做受| 国产精品一区久久久| 亚洲成年网站在线观看| 国产精品青草久久久久福利99| 午夜精品在线观看| 永久555www成人免费| 国产欧亚日韩视频| 亚洲奶大毛多的老太婆| 色噜噜狠狠狠综合曰曰曰88av| 欧洲美女免费图片一区| 久久亚洲成人精品| 亚洲成**性毛茸茸| 热草久综合在线| 色噜噜国产精品视频一区二区| 亚洲日韩欧美视频一区| 亚洲精品日产aⅴ| 爽爽爽爽爽爽爽成人免费观看| 欧美激情视频网址| 欧美性猛交xxxx乱大交极品| 一区二区三区四区视频| 亚洲欧洲国产一区| 久久国产色av| 日韩在线免费观看视频| 亚洲午夜色婷婷在线| 亚洲小视频在线观看| 91久久久久久久久久久久久| 国产精品免费一区豆花| 欧美男插女视频| 欧美中文字幕在线播放| 国产69精品99久久久久久宅男| 欧美天堂在线观看| 国产精品视频永久免费播放| 中文字幕免费精品一区| 国产99久久精品一区二区| 成人免费观看49www在线观看| 一区二区三区国产在线观看| 国产成人涩涩涩视频在线观看| 日韩有码视频在线| 一本色道久久综合狠狠躁篇怎么玩| 成人亚洲综合色就1024| 久久人人爽人人爽人人片亚洲| 欧美一乱一性一交一视频| 久久91亚洲精品中文字幕| 久久综合伊人77777蜜臀| 亚洲精品wwwww| 91在线视频免费| 欧美激情精品久久久久久| 91极品女神在线| 日本在线精品视频| 日韩国产一区三区| 超碰日本道色综合久久综合| 欧美一区二区三区免费观看| 97视频在线观看播放| 日韩成人中文字幕在线观看| 主播福利视频一区| 九九热最新视频//这里只有精品| 日本久久亚洲电影| 日韩欧美中文字幕在线观看| 91精品成人久久| 91精品视频网站| 成人福利网站在线观看| 国产综合视频在线观看| 欧美特黄级在线| 欧美性极品xxxx娇小| 亚洲国产欧美一区| 国产99久久精品一区二区 夜夜躁日日躁| 夜夜嗨av色一区二区不卡| 国产91精品青草社区| 久久久精品中文字幕| 成人情趣片在线观看免费| 亚洲欧美视频在线| 欧美激情亚洲激情| 欧美激情精品久久久久久| 亚洲欧美成人网| 国产精品夜色7777狼人| 91精品视频一区| 久久亚洲私人国产精品va| 亚洲跨种族黑人xxx| 精品久久久久久久大神国产| 欧美日在线观看| 久久久在线观看| 亚洲精品免费一区二区三区|