2016-12-15 5 views
1

私は、DataTableからdinamically作成されたasp.netのチャートで作業しています。だから、私は私のチャートにしたいことは、各differenteの場所の列であり、各diferentタイプのために私はの「部分」を持ちたいASP.NETチャート - Y値が0から始まらない

enter image description here

:基本的に私はこのようなデータテーブルを持っています列ごとに1つのタイプごとに分割された列あたりの列を持つことを意味します。

私はこのような何かをするために管理している、ではなく、かなり私が好きだろうか:

enter image description here

は、今私は自分のコードを説明しようとするでしょう。それぞれ別の場所のために、私が対応する位置に行を選択し、それらのそれぞれのためのシリーズを作成し、後

まず、私は、文字列

string loc = ""; 
for (int i = 0; i < dtTipos.Rows.Count; i++) 
{ 
    if (loc != dtTipos.Rows[i]["Location"].ToString()) 
     listaLocais.Add(dtTipos.Rows[i]["Location"].ToString()); 

    loc = dtTipos.Rows[i]["Location"].ToString(); 
} 

のリストに私のDataTableの異なる場所を追加します。私は、Y = 0と一つに点を作成するために進むY =総

for (int i = 0; i < listaLocais.Count; i++) 
{ 
    DataRow[] lRow = dtTipos.Select("Location = '" + listaLocais[i] + "'"); 
    foreach (DataRow dr in lRow) 
    { 
     string serie = dr["Location"].ToString().Substring(0, 2) + "_" + dr["Type"].ToString() + " - " + dr["Total"].ToString(); 
     Series s = new Series(); 
     s.Name = serie; 
     s.Label = dr["Location"].ToString(); 
     s.ChartType = SeriesChartType.StackedColumn; 
     chartTipo1.Series.Add(s); 

     s.Points.AddXY(i + 1, 0); 
     s.Points[0].Label = " "; 
     s.Points.AddXY(i + 1,Convert.ToInt32(dr["Total"].ToString())); 
     s.Points[1].Label = " ";// dtTipos.Rows[i]["Total"].ToString(); 
    } 
} 

ものがある:私は行ごとにセリエAを作成するので、毎回私はdiferent列、y軸が起動を使用することを考えますそこから私はそれを去った。

これを動作させる方法はありますか? 何か助けていただければ幸いです。

答えて

1

シリーズとデータポイントを同じループに追加しています。まず、あなたのデータポイントをあなたの系列を追加:

public partial class WebForm1 : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     DataTable dt = new MyDataTable(); 

     //first add your series 
     foreach (DataRow row in dt.DefaultView.ToTable(true, new string[] { "Type" }).Rows) 
     { 
      Series series = new Series(); 
      series.Name = (string)row["Type"]; 
      series.ChartType = SeriesChartType.StackedColumn; 
      Chart1.Series.Add(series); 
     } 

     // then add your points; 
     foreach (DataRow row in dt.Rows) 
      Chart1.Series[(string)row["Type"]].Points.AddXY(row["Location"], new object[] { row["Total"] }); 
    } 
} 

enter image description here

+0

は、私はそれは簡単なことだったと思い傾けます。しかし、今は別の問題を抱えています。すべての場所がグラフに表示されているわけではありません(6つの場所がありますが、4つしか表示されません)。これは欠けている場所でいくつかのタイプを繰り返すことによって引き起こされますか? –

+0

あなたに決定的な答えを与えるために、人々はあなたの特定の問題を再現できるように[MCVE](http://stackoverflow.com/help/mcve)を投稿する必要があります。私の郵便があなたの現在の問題を解決した場合は、それを受け入れられたものとしてマークし、あなたの新しい問題を記入してください。しかし、上記のリンクで説明されているように適切な質問をする方法を必ず確認してください。 – jsanalytics

+0

右の列に情報を入力するのに問題があります。混乱し続けます。間違った値が間違った場所に書き込まれます。 これについて別の質問をしたり、この質問を編集する必要がありますか? –

関連する問題