我试图在fusionchart最新的javascript版本中创建一个简单的条形图(column2d)。在本练习中,我能够从我的 c# 代码中获取 JSON strigify 输出,但是当我将返回值绑定到 fusionchart 数据时,它不起作用。我的 AJAX 呼叫,
$.ajax({
type: 'POST',
url: "Reports/GetTicketAnalysisChartData",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
var revenueChart = new FusionCharts({
"type": "column2d",
"renderAt": "chartContainer",
"width": "500",
"height": "300",
"dataFormat": "json",
"dataSource": {
"chart": {
"caption": "Monthly revenue for last year",
"subCaption": "Harry's SuperMart",
"xAxisName": "Month",
"yAxisName": "Revenues (In USD)",
"theme": "fint"
},
"data": data.d
}
});
revenueChart.render();
},
error: function (xhr, ErrorText, thrownError) {
//alert(xhr.responseText);
$("#chartContainer").html(xhr.responseText);
}
});
如果我采用 json 输出,即"data.d"字符串并将其放在"data"参数中,如下所示,那么它就可以工作了。
"data" : [{"label":"abc","value":"15"},{"label":"xyz","value":"10"},{"label":"asdf","value":"12"},{"label":"ghi","value":"11"}]
当我作为对象"数据"传递时它不起作用:data.d。请帮忙。
请将"data.d"直接传递给"data",不要格式化为字符串,图表会使用您的方法正确呈现。
参考资料- http://jsfiddle.net/sanjuktamukherjee/45u56055/SampleLink
我在这方面浪费了很多时间。您只需要将返回的字符串转换为 JSON 对象。
var chartData = eval("(" + data.d + ')');
然后将图表数据传递给融合图表的"数据"参数
"data": chartData