0

JDASH というフレームワークを使用してフローティング ユーザー コントロール (実際には更新パネル) を描画し、その中でハイチャートを描画しています。何らかの理由で、更新パネルのサイズを変更すると、ハイチャートのサイズ変更に失敗することがあります。サイズ変更を呼び出してみました:

var chartName = '<%= GetChartName() %>';
    $("#" + chartName.toString() + "_container").resize(function (e) {      
        //chartName.redraw();
    });

これが役立つ場合もありますが、この関数が呼び出されない場合もあります。ハイチャートを強制的に再描画する方法について何か考えはありますか?

ありがとう、オマー

4

2 に答える 2

1
chart.series[0].setData(data,true);

setDataメソッド自体がメソッドをredraw呼び出します

于 2013-10-28T15:09:21.290 に答える
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();

}

于 2016-11-09T13:18:20.613 に答える