1

私がやりたいことは、単純な文字列配列 (数値の) を Web サービスからハイチャートに取得することです。何らかの理由で、グラフがレンダリングされず、これを介して値を取得できません。

Highchart のドキュメントで、ドメイン間でデータを送信する次の例を見つけました。

http://docs.highcharts.com/#cross-domain-data

これは彼らの例です(phpを使用):

The serverside php file:
<?php
header("content-type: application/json"); 

$array = array(7,4,2,8,4,1,9,3,2,16,7,12);

echo $_GET['callback']. '('. json_encode($array) . ')';    

?>

jQuery を使用してコールバック関数を呼び出す JavaScript。

$(document).ready(function() {
var options = {
    chart: {
        renderTo: 'container',
        type: 'spline'
    },
    series: [{}]
};

var url =  "http://url-to-your-remote-server/jsonp.php?callback=?";
$.getJSON(url,  function(data) {
options.series[0].data = data;
var chart = new Highcharts.Chart(options);
});
});

そして今、これは私の WebService.cs がどのように見えるかです:

public WebService () {
    //Uncomment the following line if using designed components 
    //InitializeComponent(); 
}

[WebMethod(Description = "ID:2")]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]

public string GetSomeValues() {

    string[] values = { "3", "5", "6", "7", "3"};

    string[][] jaggedTable = new string[values.Count()][];

    int i = 0;
    foreach (var value in values)
    {
        jaggedTable[i] = new string[] { value + "" };
        i++;
    }

    JavaScriptSerializer js = new JavaScriptSerializer();
    string strJSON = js.Serialize(jaggedTable);

    return strJSON;
}

そして Default.aspx:

<script type="text/javascript">
    $(document).ready(function () {
        var options = {
            chart: {
                renderTo: 'container',
                type: 'spline'
            },
            series: [{}]
        };

        var url = "WebService.asmx/GetSomeValues";
        $.getJSON(url, function (data) {
            options.series[0].data = data;
            var chart = new Highcharts.Chart(options);
        });
    });
</script>

更新:コンソールに次のエラーが表示されていることを確認しました:

GET http://localhost:53566/WebService.asmx/GetSomeValues 500 (Internal Server Error)
jquery.min.js:130
c.extend.ajax jquery.min.js:130
c.extend.get jquery.min.js:122
c.extend.getJSON jquery.min.js:122
(anonymous function) highchart.aspx:23
c.extend.ready jquery.min.js:26

無名関数は次のとおりです。

$.getJSON(url, function (data) {
            options.series[0].data = data;
            var chart = new Highcharts.Chart(options);
        });

私は何を間違っていますか?

4

0 に答える 0