重新放置CFChart的URL

时间:2012-03-09 17:26:55

标签: url coldfusion replace coldfusion-8 cfchart

我正在制作一张图表,其中包含了一系列调查的结果。 CFChartData项是类别的名称,值是给予类别的平均分数。图表工作正常,但我需要将图表网址设置为项目名称之外的其他内容,因为我们使用的Friendly Url系统不会允许%20在Get Url中使用(并且大多数类别名称都有空格,被CFChart替换为%20)。我也无法更改图表上类别的名称(在图表上使用 - 或_而不是空格,导致图表项目不会换行,然后图表图像只显示其他所有类别名称)。

无论如何都要指定要使用的备用ID(例如当前行或指定的唯一ID)或者可能将URL中使用的%20替换为 - 或_而不是图表本身(我尝试在URL内部执行ReReplace,但它在$ ITEMLABEL $被分配之前运行,导致错误。)?

编辑 - 也可以添加代码,即使它相当通用(并且不包括我所做的尝试,它只是我现在使用的代码)

<cfchart format="png" scalefrom="1" scaleto="#max#" chartwidth="675" url="#request.site_url#Drivers/Name/$ITEMLABEL$.html">
<cfchartseries type="Bar" colorlist="##000000">
    <cfloop query="getGraph">
        <cfchartdata item="#Name#" value="#totalratings#">
    </cfloop>
</cfchartseries>
</cfchart>

1 个答案:

答案 0 :(得分:2)

我相信你可以使用cfsavecontent做你正在寻找的东西。

<cfsavecontent variable="theGraph">
<cfoutput>
<cfchart format="png" scalefrom="1" scaleto="#max#" chartwidth="675" url="#request.site_url#Drivers/Name/$ITEMLABEL$.html">
    <cfchartseries type="Bar" colorlist="##000000">
    <cfloop query="getGraph">
        <cfchartdata item="#Name#" value="#totalratings#">
    </cfloop>
    </cfchartseries>
</cfchart>
</cfoutput>
</cfsavecontent>

<cfset theGraph = replacenocase(theGraph,"%20","-","ALL")/>
<cfoutput>#theGraph#</cfoutput>

我的替换逻辑只是一个示例,您可以在渲染之前使用字符串执行任何操作。