我正在尝试使用updateSeries方法更新dojo Pie图表。在执行ajax调用以获取更新后的javascript数组数据后,我调用该方法。
这是Javascript:
var eventByReasonsData = .... //gets populated on jsp page compile
var theme = dojox.charting.themes.Julie;
var eventReasonsChart = null;
function makeEventsByReason() {
var dc = dojox.charting;
eventReasonsChart = new dc.Chart2D("eventsByReasonChart");
eventReasonsChart.setTheme( theme ).addPlot("default", {
type: "Pie",
font: "normal normal 8pt Tahoma",
fontColor: "black",
labelOffset: -20,
radius: 100
}).addSeries("eventSeries", eventByReasonsData );
var anim_a = new dc.action2d.MoveSlice(eventReasonsChart, "default");
var anim_b = new dc.action2d.Highlight(eventReasonsChart, "default");
var anim_c = new dc.action2d.Tooltip(eventReasonsChart, "default");
eventReasonsChart.render();
}这是我的HTML:
<div id="eventsByReasonChart" ></div>下面是进行AJAX调用的javascript:
new Ajax.Request( url, {
method: 'post',
parameters: params,
onComplete: function(response) {
if( response.responseText != "empty" )
{
var chart = eventReasonsChart;
eventByReasonsData = response.responseText;
chart.updateSeries( "eventSeries", eventByReasonsData );
chart.render();
}
}
});最后,下面是我的数据在发送到图表时的格式:
[{ y:48 },{ y:1 },{ y:1 },{ y:14 },{ y:7 },{ y:3 },{ y:8 }]当最初绘制图表时,一切都很酷,没有问题。执行Ajax调用时,我接收到新数据,执行AFter调用,图表消失。我在控制台上看不到错误。
有什么想法吗?
发布于 2010-12-02 13:01:37
我怀疑eventByReasonsData是一个字符串,而updateSeries()需要一个数组。您可以使用dojo.fromJson()将字符串转换为数组:
chart.updateSeries( "eventSeries", dojo.fromJson(eventByReasonsData) );https://stackoverflow.com/questions/4331568
复制相似问题