0
我想創建一個顯示默認餅圖和幾個按鈕的頁面。當用戶點擊按鈕時,該頁面將從WebHandler
獲取新的JSON數據並重繪圖表。我使用.net 2.0,C#,Web表單。從.NET WebHandler傳遞JSON數據以重新繪製具有新系列數據的Pie Highcharts
我有這個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
?
不要手動形成你的json字符串。使用[DataContractJsonSerializer](http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json.datacontractjsonserializer.aspx),[JavaScriptSerializer](http://msdn.microsoft.com/en- us/library/system.web.script.serialization.javascriptserializer.aspx),[Json.Net](http://json.codeplex.com/)等。 – 2012-02-28 22:00:36
雖然我在.net 2.0上。 DataContractJsonSerializer,JavaScriptSerializer不支持2.0。我真的不想使用第三方框架。 – imObjCSwifting 2012-02-28 22:09:42
** c#:**'data + =「[{\」Male \「:80.0},{\」Female \「:20.0}]」;',** JS:**'data:[['Yes ',60],['不',40]]。你的'data'是一個對象還是數組數組? – 2012-02-28 22:46:01