2012-02-28 47 views
0

我想創建一個顯示默認餅圖和幾個按鈕的頁面。當用戶點擊按鈕時,該頁面將從WebHandler獲取新的JSON數據並重繪圖表。我使用.net 2.0,C#,Web表單。從.NET WebHandler傳遞JSON數據以重新繪製具有新系列數據的Pie Highcharts

我有這個WebHandlerjson.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

不要手動形成你的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

+0

雖然我在.net 2.0上。 DataContractJsonSerializer,JavaScriptSerializer不支持2.0。我真的不想使用第三方框架。 – imObjCSwifting 2012-02-28 22:09:42

+0

** c#:**'data + =「[{\」Male \「:80.0},{\」Female \「:20.0}]」;',** JS:**'data:[['Yes ',60],['不',40]]。你的'data'是一個對象還是數組數組? – 2012-02-28 22:46:01

回答

0

Nvm,我解決了問題。我不得不傳入高層需要的Json格式。

例如:[{ 「類型」: 「餅」, 「名稱」: 「水果」, 「數據」:[[ 「蘋果」,43.0],[ 「梨」,57.0]]}]