我目前使用一个KendoUI Chart对象,其中动态数据正在被添加到它。在数据点和值轴上都添加了动态数据。当试图在图表上运行.redraw()方法以重新绘制整个事物而不仅仅是更新数据点时,IE8抛出无效参数错误以及由于80020101而无法完成操作。
删除redraw()语句修复了这个问题,并允许图表呈现,但是更新轴和整个图表的部分不允许。下面是失败的代码部分。
//add value axis:
var chartOptions = metricsChart.options;
var valueAxis = metricsChart.options.valueAxis;
chartOptions.valueAxis = []; //reset value axis
chartOptions.valueAxis.push(valueAxis);
//chartOptions.valueAxis.push({}); //right value axis
//left value axis:
chartOptions.valueAxis[0] = {
name: leftData.MeasurementTypeGroupName, //"blood pressure"
title: {
text: leftData.MeasurementTypeGroupName + (leftData.SeriesData[0].UnitName.length > 0 ? " (" + leftData.SeriesData[0].UnitName + ")" : ""),
font: "12px",
color: "gray"
},
color: "gray",
labels: {
format: "{0}",
},
majorGridLines: {
visible: false
},
min: yAxisMin,
max: yAxisMax,
//there are three plot bands: (yAxisMin, rangeLow), (rangeLow, rangeHigh), ( rangeHigh, yAxisMax)
plotBands: [{
from: yAxisMin,
to: rangeLow,
color: bottomPlotColor,
opacity: 0.8
}, {
from: rangeLow,
to: rangeHigh,
color: middlePlotColor,
opacity: 0.8
}, {
from: rangeHigh,
to: yAxisMax,
color: topPlotColor,
opacity: 0.8
}]
};
for ( var j = 0; j < leftData.SeriesData.length; j ++) {
chartOptions.series[j].axis = leftData.MeasurementTypeGroupName; //e.g. "blood pressure";
}
metricsChart.redraw();
}
这是一个巨大的断路器,如果有人有其他的方法,他们可以推荐除了。redraw方法。那可帮了大忙了。
问题解决,错误在
text: leftData.MeasurementTypeGroupName + (leftData.SeriesData[0].UnitName.length > 0 ? " (" + leftData.SeriesData[0].UnitName + ")" : ""),
从title{}对象中删除这一行解决了这个问题。