1

我正在尝试通过 .Net Ajax 调用加载 jQuery Highcharts 图表,但运气不佳。

我可以按如下方式填充图表并且它的显示没有问题:

function LoadTopActionsChartComplete() {
            var chart1;
            $g(function () {
                chart1 = new Highcharts.Chart({
                 chart: {
                           renderTo: 'divTopActionChart',
                           type: 'bar',
                           backgroundColor:'rgba(255, 255, 255, 0.1)'
                  },
                  title: {
                           text: 'Top Performing Actions'
                  },
                   credits: {
                             enabled: false
                   },
                  xAxis: {
                           categories:["1","2","3","4","5"]
                  },
                  yAxis: {
                            title: {
                            text: ''
                            }
                 },
                  series:[
                            {name: 'Link1',data:[703]},
                            {name: 'Link2',data:[661]},
                            {name: 'Link3',data:[649]},
                            {name: 'Link4',data:[615]},
                            {name: 'Link5',data:[611]}
                         ]
              });

            });

        }



</script>
</head>

<script type="text/javascript">
    window.onload = LoadTopActionsChartComplete();
</script>

为了在 Ajax 调用上加载它,我实现了以下内容:

 $g(function PageLoad() {     
        LoadTopActionsChart();
    });

function LoadTopActionsChart() 
    {
        CampaignResultsNew.LoadTopActionsChart(LoadTopActionsChart_Callback);

    }

    function LoadTopActionsChart_Callback(response) {
        alert(response.value);
        LoadTopActionsChartComplete(response.value)
    }


    function LoadTopActionsChartComplete(chartScript) {
            var chart1;
            $g(function () {
                chart1 = chartScript;
            });

        }

函数“LoadTopActionsChartComplete”正在成功接收以下代码,但这不允许在页面上呈现任何内容。

new Highcharts.Chart({
                 chart: {
                           renderTo: 'divTopActionChart',
                           type: 'bar',
                           backgroundColor:'rgba(255, 255, 255, 0.1)'
                  },
                  title: {
                           text: 'Top Performing Actions'
                  },
                   credits: {
                             enabled: false
                   },
                  xAxis: {
                           categories:["1","2","3","4","5"]
                  },
                  yAxis: {
                            title: {
                            text: ''
                            }
                 },
                  series:[
                            {name: 'Link1',data:[703]},
                            {name: 'Link2',data:[661]},
                            {name: 'Link3',data:[649]},
                            {name: 'Link4',data:[615]},
                            {name: 'Link5',data:[611]}
                         ]
              });

如果有人能指出我哪里出错了,我将不胜感激。

谢谢。

4

1 回答 1

0

使用显示图表选项的 url,您可以使用$.getJSON()执行此操作:

$(function () {

  $.getJSON("url/of/webservice/that/returns/chartoptions", function(chartOptions){  

    var chart = new Highcharts.Chart(chartOptions);

  });

})();

您可以将 .net JSON 库(如JSON.NET)用于您的 Web 服务。

此外,您可能还想了解$(document).ready()

于 2012-04-24T23:30:47.757 回答