【发布时间】:2017-10-30 11:22:50
【问题描述】:
我正在尝试实现一个 Highcharts 图表以将新系列动态加载到 .NET MVC 中的同一图表。我只需要根据一些属性将相同的数据集分成几个组,并将这些组显示为多个系列。使用单选按钮选择分组属性。我使用 Jquery 编写了一个“on change”事件处理程序。为了加载多个系列,我删除了所有当前系列并添加了新系列。但它们返回两个错误。
while (chart.series.length > 0) {
chart.series[0].remove(false);
}
chart.redraw();
这个块破坏了现有的系列。但它返回以下错误。
Uncaught TypeError: Cannot read property 'isSVG' of undefined
at a.SVGElement.destroy (highcharts.js:53)
at highcharts.js:212
at Array.forEach (<anonymous>)
at a.each (highcharts.js:28)
at a.Legend.destroyItem (highcharts.js:212)
at k.destroy (highcharts.js:286)
at d (highcharts.js:316)
at a.fireEvent (highcharts.js:31)
at k.remove (highcharts.js:316)
at k.remove (highcharts.js:334)
destroy @ highcharts.js:53
(anonymous) @ highcharts.js:212
a.each @ highcharts.js:28
destroyItem @ highcharts.js:212
destroy @ highcharts.js:286
d @ highcharts.js:316
a.fireEvent @ highcharts.js:31
remove @ highcharts.js:316
remove @ highcharts.js:334
(anonymous) @ StackedChart:285
dispatch @ jquery-1.10.2.js:5109
elemData.handle @ jquery-1.10.2.js:4780
以下是加载新系列的代码。
if (i != (workCenterData.length - 1))
chart.addSeries({ data: dataArray }, false);
else
chart.addSeries({ data: dataArray }, true);
此块返回以下错误。
Uncaught TypeError: Cannot read property 'setAttribute' of undefined
at a.SVGElement.fillSetter (highcharts.js:59)
at a.SVGElement.<anonymous> (highcharts.js:43)
at a.objectEach (highcharts.js:29)
at a.SVGElement.attr (highcharts.js:42)
at a.Legend.colorizeItem (highcharts.js:212)
at a.Legend.renderItem (highcharts.js:217)
at highcharts.js:220
at Array.forEach (<anonymous>)
at a.each (highcharts.js:28)
at a.Legend.render (highcharts.js:220)
fillSetter @ highcharts.js:59
(anonymous) @ highcharts.js:43
a.objectEach @ highcharts.js:29
attr @ highcharts.js:42
colorizeItem @ highcharts.js:212
renderItem @ highcharts.js:217
(anonymous) @ highcharts.js:220
a.each @ highcharts.js:28
render @ highcharts.js:220
redraw @ highcharts.js:232
C @ series-label.js:9
a.(anonymous function) @ highcharts.js:19
(anonymous) @ highcharts.js:307
a.fireEvent @ highcharts.js:31
addSeries @ highcharts.js:306
(anonymous) @ StackedChart:314
dispatch @ jquery-1.10.2.js:5109
elemData.handle @ jquery-1.10.2.js:4780
我尝试了这两种销毁方法,然后在单击普通 HTML 页面的按钮上重新生成新系列,它可以工作。也许这与.NET 有关。因为我参考了很多论坛,他们推荐这些方法。抱歉,我不能包含小提琴,因为我的数据是从数据库中获取的。任何想法如何进行动态加载或摆脱这些错误?
【问题讨论】:
标签: javascript jquery .net charts highcharts