佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > Coldfusion MX PageList 菜鳥版教程

Coldfusion MX PageList 菜鳥版教程

熱門標(biāo)簽:客戶服務(wù) 百度AI接口 呼叫中心市場(chǎng)需求 企業(yè)做大做強(qiáng) 語(yǔ)音系統(tǒng) 電話運(yùn)營(yíng)中心 Win7旗艦版 硅谷的囚徒呼叫中心
最初寫的: 

1、可以實(shí)現(xiàn)的功能:
首頁(yè),末頁(yè),上一頁(yè),下一頁(yè)以及指定頁(yè)的跳轉(zhuǎn)。
首頁(yè)末頁(yè)有自動(dòng)隱藏的功能。
跳轉(zhuǎn)下拉菜單動(dòng)態(tài)顯示當(dāng)前頁(yè)碼和總頁(yè)數(shù)。 

2、原理 

核心原理參考Codefusion MX 附帶的Compass Travel例子 中tripdetail.cfm的翻頁(yè)原理。即假設(shè)當(dāng)前頁(yè)為第6頁(yè),對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢,返回?cái)?shù)maxRows 定為1,查上一頁(yè)就是對(duì)小于6的數(shù)進(jìn)行倒序查詢,得出的結(jié)果是5,4,3...,因?yàn)橹环祷匾粋€(gè)值,所以就得到了5。其他的同理。 

3、使用方法 

將代碼放入要實(shí)現(xiàn)pagelist的地方,用查找替換修改里面的cfsnippets,centers和center_ID,把他們換成實(shí)際使用的數(shù)據(jù)庫(kù)名,表名和字段名。 

4、局限與不足 

因?yàn)閷W(xué)cf不到一個(gè)星期,對(duì)cfml還不是很熟悉,所以有些代碼還是很繁瑣,我覺得不足的地方有:
(1)樣式具有局限性,因?yàn)椴捎玫氖潜韱蝔orm,所以只能用button或圖片來(lái)顯示,不能用單純的文字。
(2)修改還得要用查找替換。原來(lái)設(shè)想只改前面數(shù)據(jù)庫(kù)定義的三個(gè)變量就可以,但后來(lái)發(fā)現(xiàn)在cfout>里面使用查詢的結(jié)果,必須要是確定的值,比如#gotopage.currentrow#,而不能再在里面使用動(dòng)態(tài)參數(shù),請(qǐng)問高手有什么好的解決辦法? 




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

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

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

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

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

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

!-- 頁(yè)數(shù) ,跳轉(zhuǎn)-->
B>跳轉(zhuǎn)到: /B>第select name="goto">
cfoutput query="gotopage">
cfif gotopage.center_ID is pageid>
option value="#gotopage.center_ID#" selected>#gotopage.currentrow#!--- 使本頁(yè)的數(shù)字處于被選擇狀態(tài) --->
cfelse>
option value="#gotopage.center_ID#">#gotopage.currentrow#
/cfif>
/cfoutput>
/option>/select>/cfoutput >#gotopage.recordcount#/cfoutput>頁(yè)
input name="Go" type="submit" value="GO"> 

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


后來(lái)發(fā)現(xiàn)不對(duì)勁,又進(jìn)行了修改: 

上面的代碼只能用來(lái)list每頁(yè)只有一個(gè)記錄的page,如果一頁(yè)有多個(gè)記錄,上面的方法是不行的。 

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

代碼比原來(lái)的又精簡(jiǎn)了不少 :) 


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


呵呵,一個(gè)菜鳥版的pagelist終于完成,十分簡(jiǎn)單,用的方法也挺笨的。

標(biāo)簽:崇左 濟(jì)南 山西 山西 海南 安康 長(zhǎng)沙 喀什

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Coldfusion MX PageList 菜鳥版教程》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    阿拉善盟| 法库县| 额尔古纳市| 浑源县| 保定市| 芮城县| 安溪县| 旬邑县| 乌审旗| 佛冈县| 夏邑县| 绥滨县| 黔西| 若羌县| 永济市| 长宁县| 徐州市| 三台县| 法库县| 阳朔县| 丽水市| 贵阳市| 那曲县| 同江市| 崇阳县| 工布江达县| 灵宝市| 涿州市| 陆河县| 宁乡县| 岱山县| 三门峡市| 聂荣县| 连城县| 嘉祥县| 新河县| 深圳市| 临夏县| 潜山县| 安仁县| 平舆县|