0

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

无论如何要分配要使用的备用 ID(例如当前行或分配的唯一 ID)或可能将 URL 中使用的 %20 替换为 - 或 _ 但不在图表本身上(我试过在 URL 中执行替换,但它在 $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>
4

1 回答 1

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>

我的替换逻辑只是一个例子,你可以在渲染之前对字符串做任何你想做的事情。

于 2012-11-16T16:00:42.970 回答