我正在开发一个asp应用程序,它使用WCF服务(.svc而不是.asmx)将JSON数据发送到highcharts。如果我使用ie兼容性视图似乎只能工作。如果我不这样做,我会收到消息:
Microsoft JScript运行时错误:Highcharts错误#13:http://www.highcharts.com/errors/13
错误编号13以及在线搜索表明我没有正确的租房者到DIV,但它存在。我有什么想法可以使我的应用程序在不兼容的视图中工作?
谢谢!
这里要求的是一些代码。我有两个排列并排的图表,其中一个处理“低”周转项目,另一个处理高。这是低项目图表,因此它呈现给一个名为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
我的网络服务获取一个包含多个系列的JSON字符串。在页面加载时,我调用Web服务(两次为高和低项目)并循环遍历系列数组以绘制多条曲线。
function pageLoad() {
JSONGraphing.GetDataDB(getParameterByName("id"), 2, OnGetDataCompleteLow, OnError);
JSONGraphing.GetDataDB(getParameterByName("id"), 1, OnGetDataCompleteHigh, OnError);
}
以下是低图的一个回调函数示例。
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' });
}
我有点紧张,所有的帮助都非常感激。
答案 0 :(得分:1)
为确保容器存在,您必须在呈现后运行代码,可以通过以下方式完成。
document.ready(function() {
// your code
});
或
<div id="container"> </div>
<script type="type="text/javascript"">
// your code here
</script>
或
(function() {
// your code here
})