最近做了一個(gè)ColdFusion的項(xiàng)目,收益頗多。
其中也碰到了一些bt的需求,結(jié)合項(xiàng)目把一些小技巧和大家分享一下(一個(gè)0 ColdFusion經(jīng)驗(yàn)的菜鳥(niǎo)被趕鴨子上架的搞了幾天心得,如果你認(rèn)為簡(jiǎn)單的可笑歡迎指教,亂噴黨請(qǐng)繞行)
先來(lái)點(diǎn)小菜
- ColdFusion使用ajax(ColdFusion返回json格式的數(shù)據(jù))
用慣了jquery,直接無(wú)視ColdFusion的ajax。既然用jquery,當(dāng)然希望后臺(tái)返回json格式的數(shù)據(jù)。
找了一下coldfusion 8已經(jīng)提供非常方便的api。
<cfinvoke?component="CsmDashboard"?method="getCsTableSum"?timerange="#timerange#"?
wherestr="#wherestr#"?returnVariable="tableSum"/>
<cfscript>
????writeOutput(SerializeJSON(#tableSum#));
</cfscript>
writeOutput(SerializeJSON(#tableSum#));這句會(huì)把查詢結(jié)果tableSum序列化成json格式傳給前臺(tái)。
- ColdFusion不自動(dòng)轉(zhuǎn)義參數(shù)
PreserveSingleQuotes(name),ColdFusion為了安全,會(huì)自動(dòng)轉(zhuǎn)義參數(shù)中的特殊字符。特殊情況下我們不希望他這樣做,就可以用上面的方法。
- ColdFusion字符串比較,以XX結(jié)尾
<cfif?Right(ListGetAt(nameList,LoopCount),2)?eq?"sp">
- 查詢結(jié)果字段列表 query.columnlis
- 查詢結(jié)果集某個(gè)字段的第幾行#query.columnname[i]#
以上只是為了再來(lái)一個(gè)大菜:動(dòng)態(tài)列,表格。以下是簡(jiǎn)化的代碼
?<cfset?nameList?=?"Calls,CALLSP,Duration,......................................................">
????
????????????<CFOUTPUT?query="csmSum">
??????????????<cfloop?index?=?"LoopCount"?from="1"?to="#ListLen(nameList)#">
????????????????<cfset?tmp?=NumberFormat(Evaluate("querylist."?&?ListGetAt(nameList,LoopCount)),0.00)>
??????????????????????????? <td?class="num">#tmp#</td>
??????????????</cfloop>
????????????</CFOUTPUT>
ColdFusion只能根據(jù)一個(gè)變量名稱取取查詢結(jié)果的字段,沒(méi)有根據(jù)位置或者字符串取,非常不爽。
核心就是用
Evaluate根據(jù)一個(gè)字符串去動(dòng)態(tài)構(gòu)造一個(gè)變量,然后根據(jù)這個(gè)變量取出query中的列。
個(gè)這個(gè)字符串可以從一個(gè)list里面動(dòng)態(tài)循環(huán)取出來(lái)再拼湊而成
而這個(gè)list可以從一些地方查詢或者傳遞過(guò)來(lái)。
所以表格就動(dòng)態(tài)了起來(lái)。
posted on 2008-10-29 15:49
交口稱贊 閱讀(2338)
評(píng)論(0) 編輯 收藏 所屬分類:
J2EE & WEB