2012-04-25 18 views
0

私はASP.NET WebFormsアプリケーションにチャートを作成しています。アプリケーションのチャートを作成するためにチャートのデータを作成するために、クリーンなコードと簡単で、ASP.NET WebFormsを使用したGoogle Charts API - DataTableの作成

string jsGraph = ""; 
jsGraph += "data.addRows(["; 
      while (dsChartsData.Read()) 
      { 
       var d = (DateTime)dsChartsData["dateColumn"]; 
       jsGraph += "[new Date(" + d.Year.ToString() + ", " + d.Month.ToString() + ", " + d.Day.ToString() + "), " + dsChartsData["value1"].ToString() + ", null, null, " + dsChartsData["value3"].ToString() + ", null, null],"; 
      } 
jsGraph += "]);" 

このより保守を行うにはどのような方法があります:私はこの汚いコードを作成、これを行うにはSqlDataReadersを使用してい

var data = new google.visualization.DataTable(); 
data.addColumn('date', 'Date'); 
data.addColumn('number', 'Sold Pencils'); 
data.addColumn('string', 'title1'); 
data.addColumn('string', 'text1'); 
data.addColumn('number', 'Sold Pens'); 
data.addColumn('string', 'title2'); 
data.addColumn('string', 'text2'); 
data.addRows([ 
    [new Date(2008, 1 ,1), 30000, null, null, 40645, null, null], 
    [new Date(2008, 1 ,2), 14045, null, null, 20374, null, null], 
    [new Date(2008, 1 ,3), 55022, null, null, 50766, null, null], 
    [new Date(2008, 1 ,4), 75284, null, null, 14334, 'Out of Stock', 'Ran out of stock on pens at 4pm'], 
    [new Date(2008, 1 ,5), 41476, 'Bought Pens', 'Bought 200k pens', 66467, null, null], 
    [new Date(2008, 1 ,6), 33322, null, null, 39463, null, null] 
]); 

:のように(ジャバスクリプト中)デバッグするには? (.csファイルのjavascriptは、私のコードでは大きな混乱であり、何百万もの連結やもの)

Obs:現在私はwebformsを使用していますが、MVCでこれをやっている人がいれば、おそらく、MVCでページを作成するだけで、グラフをレンダリングすることができます(もちろん、それを学んだ後に)。すべての

答えて

1

まず、あなたは...あなたのjavascript配列から,をコンマ分離を逃す

第二に、なぜそんなに連結でありますか?どうして公共の変数とそれをJavaScriptから呼び出すのですか?

のように:

あなたの方法では
public string graphData = ""; 

StringBuilder jsGraph = new StringBuilder(); 
jsGraph.AppendLine("["); 

while (dsChartsData.Read()) 
{ 
    var d = (DateTime)dsChartsData["dateColumn"]; 
    jsGraph.AppendLine("[new Date(" + d.Year.ToString() + ", " + d.Month.ToString() + ", " + d.Day.ToString() + "), " + dsChartsData["value1"].ToString() + ", null, null, " + dsChartsData["value3"].ToString() + ", null, null],"); 
} 
jsGraph.AppendLine("]"); 

graphData = jsGraph.ToString(); 

とあなたのJavaScriptで:

jsGraph.AppendFormat(
      "[new Date({0:yyyy, M, d}), {1}, null, null, {2}, null, null],", 
       (DateTime)dsChartsData["dateColumn"], 
       dsChartsData["value1"], 
       dsChartsData["value3"]); 

var graphData = <%= graphData %>; 
...  
data.addRows(graphData); 

はところで、あなたの大切な連結のように記述する必要があります

魔女ははるかに読みやすくすることができます。

+0

[OK]をクリックします。欠落しているカンマは無視してください。 –

関連する問題