其中也碰到了一些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可以从一些地方查询或者传递过来。
所以表格就动态了起来。
]]>