我正在使用一个名为JDASH的框架来绘制浮动用户控件(实际上是更新面板),在其中我正在绘制高级图表。 出于某种原因,有时当更新面板调整大小时,highcharts无法在其中调整大小。 我试过调用resize:
var chartName = '<%= GetChartName() %>';
$("#" + chartName.toString() + "_container").resize(function (e) {
//chartName.redraw();
});
这在某些情况下会有所帮助,但在其他情况下,不会调用此函数。 关于如何强制重绘图表的任何想法?
谢谢, 奥马尔
答案 0 :(得分:1)
chart.series[0].setData(data,true);
setData
方法本身会调用redraw
方法
答案 1 :(得分:0)
当点击JDASH元素及其最大化按钮时,我们遇到了同样的问题并用以下方法修复它:
JDash元素的视图:
<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>
JDash元素的javascript:
resize: function (event) {
var container = $('.dashlet' + event.sender.id).find("#container");
var chart = $(container).highcharts();
chart.reflow();
}
希望将来帮助某人。
为了完整起见;它可能是你拖拽和将您的小面板拖放到更小或更大的区域,这也应该调整图表的大小。如果是这样,您将需要此代码:
resize: function (event) {
if (!event) { return true; }
if (!event.sender) { return true; }
var containerId;
if (event.sender.id == "DDML_0") { // A dashlet container gets this class when it is being dragged.
containerId = $(".dashlet" + event.args.pane.context.id);
} else {
containerId = $('.dashlet' + event.sender.id);
}
var container = $(containerId).find("#container");
var chart = $(container).highcharts();
if (!chart) { return true; }
chart.reflow();
}