2010-11-21 15 views
1

こんにちは、私は、彼らが特定の入力ボックスから自分の 系列値を取ると、チャートは、私が先にこれをやって行きました。このコンセプトで automatically.Soを変更するように道場チャートを作成する必要があります -作成道場チャート動的

その後
var showChart= function(){ 
    var thevalue=dijit.byId('myvalue').get('value');//gets thevalue from the dijit numbertextbox 
    var chart1 = new dojox.charting.Chart2D("showgoals"); 
    chart1.addPlot("default", {type: "Lines"}); 
    chart1.addAxis("x"); 
    chart1.addAxis("y", {vertical: true}); 
    chart1.addSeries("Series 1", [thevalue, 2, 2, 3, 4, 5, 5, 7]); 
    chart1.render();}; 

私はこの関数を呼び出して値が変わる: -

 dojo.connect(dojo.byId('myvalue'), "onchange",showChart);//whenever value changes the showChart function 

HTMLはTHIのように見える

と呼ばれていますS: -

<div dojoType="dijit.layout.ContentPane" region="center"> 
      <div id="showgoals" style="width: 250px; height:150px;" class="graph1"></div> 
以下

は値変更、テキストボックスである: - 私は何を望むか

<input id="myvalue" type="text" dojoType="dijit.form.NumberTextBox" name="myvalue"value="1000000" required="true" 
          invalidMessage="Only Numbers allowed"/><br/><br/> 

だったが、そのたびに、この入力ボックスの値が変化し、 機能showchart現在のプロットは が自動的に新しい値を表示するように変更されていますが、何が起こっているのかは全く新しいグラフが表示される です。私は havです古いチャートを破棄してから新しいチャートを作り直す場合は、 どうか教えてください。

答えて

6

showChart関数では、関数が呼び出されるたびにnew dojox.charting.Chart2D("showgoals")を使用して新しいグラフが作成されます。チャートを更新する場合は、updateSeriesに電話してシリーズのデータ​​を更新し、render()に再度コールしてチャートを更新することができます。

のコードは以下のようになります。

var chart1 = null; 
var showChart = function() { 
    var thevalue=dijit.byId('myvalue').get('value'); 
    if (!chart1) { 
    var chart1 = new dojox.charting.Chart2D("showgoals"); 
    chart1.addPlot("default", {type: "Lines"}); 
    chart1.addAxis("x"); 
    chart1.addAxis("y", {vertical: true}); 
    chart1.addSeries("Series 1", [thevalue, 2, 2, 3, 4, 5, 5, 7]); 
    } 
    else { 
    chart1.updateSeries("Series 1", [thevalue, 2, 2, 3, 4, 5, 5, 7]); 
    } 
    chart1.render(); 
} 
+1

パーフェクト!ありがとうたくさん...更新プログラムについて知りませんでした – Rasmus

関連する問題