最近做了一个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
交口称赞 阅读(2327)
评论(0) 编辑 收藏 所属分类:
J2EE & WEB