Kobarin's Development Blog

C#やASP.NET、公開APIなどについての記録です。

MS Chartをコーディングで作成

SqlDataSourceやDataTableが常に固定的であれば、前回のようにChartとデータコントロールをバインドすればよいが、
通常の業務システムであればコーディング無しで済む事は少ないだろう。
例えば、SQLのフィールド名が毎回変わるケースであったり、DataTableに対して加工した結果をChartに渡すケース等。

そこで今回はコーディングでChartを生成する方法を解説する。

元になるASPXは前回と同じだが、Series等を手動で追加するため、敢えて省略しておく。

chartsample.aspx

 1:
 2:  
 3:  
 4:    
 5:  
 6:  
 7:   
 8:  
 9:

chartsample.aspx.cs

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.DataVisualization.Charting;    //Seriesの名前空間

public partial class chartsample : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
    Series series1 = new Series();             //Seriesインスタンス。各要素部はSeriesで扱われる。
    series1.YValueMembers = "A店売上";        //Y軸にバインドする項目。SQLやDataTableのカラム名を指定。当然ながら正確に。
    series1.XValueMember = "日付";             //X軸にバインドする項目。これもカラムを正確に指定。
    series1.ChartType = SeriesChartType.Line;  //チャートタイプ。ここではラインチャート。把握し切れていない間はGUIから確認すべし。
    series1.LegendText = "A店の売上金額";     //凡例部に表示する文字列。カラム名を一致させる必要はない。
    Chart1.Series.Add(series1);                //ChartにSeriesを追加。

    Series series2 = new Series();
    series2.YValueMembers = "B店売上";
    series2.XValueMember = "日付";
    series2.ChartType = SeriesChartType.Line;
    series2.LegendText = "B店の売上金額";
    Chart1.Series.Add(series2);
  }
}

以上。
Seriesに対しては、他にも様々なプロパティ(色やボーダー等)を設定する事が出来る。