首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在Ajax调用后调用updateSeries时,Dojo Pie图表会消失?

为什么在Ajax调用后调用updateSeries时,Dojo Pie图表会消失?
EN

Stack Overflow用户
提问于 2010-12-02 12:04:45
回答 1查看 1.1K关注 0票数 0

我正在尝试使用updateSeries方法更新dojo Pie图表。在执行ajax调用以获取更新后的javascript数组数据后,我调用该方法。

这是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:

代码语言:javascript
复制
        <div id="eventsByReasonChart" ></div>

下面是进行AJAX调用的javascript:

代码语言: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();                                                 
            }

        }
    });

最后,下面是我的数据在发送到图表时的格式:

代码语言:javascript
复制
[{ y:48 },{ y:1 },{ y:1 },{ y:14 },{ y:7 },{ y:3 },{ y:8 }]

当最初绘制图表时,一切都很酷,没有问题。执行Ajax调用时,我接收到新数据,执行AFter调用,图表消失。我在控制台上看不到错误。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-02 13:01:37

我怀疑eventByReasonsData是一个字符串,而updateSeries()需要一个数组。您可以使用dojo.fromJson()将字符串转换为数组:

代码语言:javascript
复制
chart.updateSeries( "eventSeries", dojo.fromJson(eventByReasonsData) );
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4331568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档