从.NET WebHandler传递JSON数据以使用新系列数据重绘Pie Highcharts

时间:2012-02-28 21:48:00

标签: c# json highcharts

我想创建一个显示默认饼图和几个按钮的页面。当用户单击按钮时,页面将从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

1 个答案:

答案 0 :(得分:0)

Nvm,我解决了问题。我必须传递highcharts想要的Json格式。

例如:[{“type”:“pie”,“name”:“Fruits”,“data”:[[“Apple”,43.0],[“Pear”,57.0]]}

相关问题