我想创建一个显示默认饼图和几个按钮的页面。当用户单击按钮时,页面将从WebHandler
获取新的JSON数据并重绘图表。我正在使用.net 2.0,C#,Web表单。
我有WebHandler
json.ashx
生成JSON:
public void ProcessRequest (HttpContext context) {
String data = String.Empty;
data += "[{\"Male\": 80.0}, {\"Female\": 20.0}]";
context.Response.ContentType = "application/json";
context.Response.Write(data);
}
这是我在aspx页面上的脚本:
var chart = null;
$(document).ready(function () {
var options = {
chart: {
renderTo: 'container',
defaultSeriesType: 'pie'
},
tooltip: {
formatter: function () {
return '<b>' + this.point.name + '</b>: ' + this.y + ' (' + this.percentage + '%)';
}
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
color: '#000000',
connectorColor: '#000000',
formatter: function () {
return '<b>' + this.point.name + '</b>: ' + this.y + ' (' + this.percentage + '%)';
}
}
}
},
series: [{
data: [['Yes', 60], ['No', 40]]
}]
};
var chart = new Highcharts.Chart(options);
$("#Gender").click(function () {
$.get('json.ashx', function (data) {
options.series = data;
var chart = new Highcharts.chart(options);
});
});
});
当我点击Gender
按钮时,它不会生成新图表。如何正确解析JSON数据并将其提供给新饼图的series.data
?
答案 0 :(得分:0)
Nvm,我解决了问题。我必须传递highcharts想要的Json格式。
例如:[{“type”:“pie”,“name”:“Fruits”,“data”:[[“Apple”,43.0],[“Pear”,57.0]]}