0

私は、WCFサービス(.asmxではなく.svc)を使用してJSONデータをhighchartsに送信するaspアプリケーションを開発しています。つまり、互換表示を使用した場合にのみ機能するようです。表示されない場合は、次のメッセージが表示されます。

Microsoft JScriptランタイムエラー:Highchartsエラー#13:http ://www.highcharts.com/errors/13

エラー番号13とオンライン検索は、DIVの適切な賃借人がいないことを示していますが、存在しています。アプリケーションを非互換ビューで動作させるためにできることはありますか?

ありがとう!

ここで要求されているように、いくつかのコードがあります。私は2つのチャートを並べて配置し、1つは「低い」売上高のアイテムを扱い、もう1つは高いものを扱います。これが低アイテムチャートであるため、名前付きcontainerLowにレンダリングされます。

var lowchart = new Highcharts.Chart({
        chart: {
            renderTo: 'containerLow'
        },
        xAxis: {                
        },
        plotOptions: {
            series: {
                cursor: 'pointer',
                point: {
                    events: {
                        click: function () {
                            //ChartClicked(this.x, this.y, this, this.series.name, this.series.color, this.index);
                            ChartClicked(this, 'Low');                                
                        }
                    }
                }
            }
        },
        tooltip: {

            formatter: function () {
                var txt = "$= <b>" + this.point.x + "</b><br/>"
                            + "Wait = <b>" + this.point.y + "</b><br/>"
                            + "Other DB Info for future Bow Wave, etc. <b><br/>"
                            + "Avg Fill Rate = <b>" + this.point.config.averageFillRate + "</b><br/>"
                            + "Average On Hand = <b>" + this.point.config.averageOnHand + "</b><br/>"
                            + "Average Workload = <b>" + this.point.config.averageWorkload + "</b><br/>"
                return txt;
            }
        }
    }); //end chart

私のWebサービスは、複数のシリーズを含むJSON文字列を取得します。ページの読み込み時に、Webサービスを呼び出し(高アイテムと低アイテムの場合は2回)、系列配列をループして複数の曲線をプロットします。

function pageLoad() {
    JSONGraphing.GetDataDB(getParameterByName("id"), 2, OnGetDataCompleteLow, OnError);
    JSONGraphing.GetDataDB(getParameterByName("id"), 1, OnGetDataCompleteHigh, OnError);
}

下のグラフのコールバック関数の1つの例を次に示します。

 function OnGetDataCompleteLow(result) {
    var webServiceData = eval("(" + result + ")");

    for (var i = 0; i < webServiceData.series.length; i++) {
        lowchart.addSeries({
            data: webServiceData.series[i].data
        });
    }

    lowchart.yAxis[0].setTitle({
        text: 'Wait time in Days'
    });

    lowchart.xAxis[0].setTitle({
        text: 'Investment in Dollars'
    });

    lowchart.setTitle({ text: 'Low Frequency Items' });

}

私は少し時間の危機に瀕しており、すべての助けに大いに感謝しています。

4

1 に答える 1

1

コンテナが存在することを確認するには、レンダリング後にコードを実行する必要があります。これは、次の方法で実行できます。

document.ready(function() {
    // your code
});

また

<div id="container"> </div>
<script type="type="text/javascript"">
    // your code here
</script>

また

(function() {
    // your code here
})
于 2012-12-17T16:39:23.790 に答える