麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > 綜合 > 正文

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終于完成,十分簡單,用的方法也挺笨的。
 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日本羞羞的午夜电视剧 | 中文字幕在线观看免费视频 | 在线观看视频日本 | 奇米888一区二区三区 | 欧美日韩在线影院 | 亚洲一区二区三区精品在线观看 | 亚洲情在线 | 欧洲精品久久 | 国产成人精品视频在线 | 欧美亚洲国产一区二区三区 | 欧美日韩激情 | 天天色综合6 | 视频www | 双性精h调教灌尿打屁股的文案 | 欧产日产国产精品99 | 精品一区二区久久久久久久网精 | 天天操天天骑 | 毛片天天看| a黄在线观看 | 毛片天天看 | av色在线观看 | 国产乱色精品成人免费视频 | 成人三级免费电影 | 蜜桃视频在线免费观看 | 国内精品久久久久影院不卡 | 久久国产精品久久久久久久久久 | 中文字幕天堂在线 | 久久国产亚洲精品 | 欧美日韩国产成人在线 | 日韩视频在线一区二区三区 | 国产成人自拍视频在线观看 | 久草视频在线资源 | 在线观看一区二区三区四区 | 色综合视频 | 国产精品久久久久久久久久尿 | 成人福利免费在线观看 | 精品国产乱码一区二区三区四区 | 欧美aaaaa一级毛片在线 | 永久免费毛片 | 成人免费视频视频在线观看 免费 | 国产无遮挡一区二区三区毛片日本 |