最近做了一個ColdFusion的項目,收益頗多。
其中也碰到了一些bt的需求,結(jié)合項目把一些小技巧和大家分享一下(一個0 ColdFusion經(jīng)驗的菜鳥被趕鴨子上架的搞了幾天心得,如果你認為簡單的可笑歡迎指教,亂噴黨請繞行)
先來點小菜
- ColdFusion使用ajax(ColdFusion返回json格式的數(shù)據(jù))
用慣了jquery,直接無視ColdFusion的ajax。既然用jquery,當然希望后臺返回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#));這句會把查詢結(jié)果tableSum序列化成json格式傳給前臺。
- ColdFusion不自動轉(zhuǎn)義參數(shù)
PreserveSingleQuotes(name),ColdFusion為了安全,會自動轉(zhuǎn)義參數(shù)中的特殊字符。特殊情況下我們不希望他這樣做,就可以用上面的方法。
- ColdFusion字符串比較,以XX結(jié)尾
<cfif?Right(ListGetAt(nameList,LoopCount),2)?eq?"sp">
- 查詢結(jié)果字段列表 query.columnlis
- 查詢結(jié)果集某個字段的第幾行#query.columnname[i]#
以上只是為了再來一個大菜:動態(tài)列,表格。以下是簡化的代碼
?<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ù)一個變量名稱取取查詢結(jié)果的字段,沒有根據(jù)位置或者字符串取,非常不爽。
核心就是用
Evaluate根據(jù)一個字符串去動態(tài)構(gòu)造一個變量,然后根據(jù)這個變量取出query中的列。
個這個字符串可以從一個list里面動態(tài)循環(huán)取出來再拼湊而成
而這個list可以從一些地方查詢或者傳遞過來。
所以表格就動態(tài)了起來。
posted on 2008-10-29 15:49
交口稱贊 閱讀(2348)
評論(0) 編輯 收藏 所屬分類:
J2EE & WEB