随笔 - 119  文章 - 3173  trackbacks - 0
<2008年10月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

交友莫独酒,茅台西凤游。
口干古井贡,心徜洋河流。
称多情杜康,趟无量双沟。
赞中华巍巍,无此不销愁。

常用链接

留言簿(68)

随笔分类(136)

随笔档案(122)

最新随笔

搜索

  •  

积分与排名

  • 积分 - 522240
  • 排名 - 94

最新评论

最近做了一个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格式传给前台。

  • ColdFusion不自动转义参数
PreserveSingleQuotes(name),ColdFusion为了安全,会自动转义参数中的特殊字符。特殊情况下我们不希望他这样做,就可以用上面的方法。

  • ColdFusion字符串比较,以XX结尾
<cfif Right(ListGetAt(nameList,LoopCount),2) eq "sp">
  • 取整 NumberFormat

  • 取list长度 listLen

  • 取list第几个ListGetAt

  • 查询结果字段列表 query.columnlis

  • 查询结果集某个字段的第几行#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

只有注册用户登录后才能发表评论。


网站导航: