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