6

データ テーブルから作成したいグラフ コントロールを取得しました。

テーブルは次のようになります。

代替テキスト http://www.freeimagehosting.net/uploads/5d02ce1558.png

私が望むチャートは次のようになります:

''' 
''''
'''''       '' '  
'''''       '' '
ECCTMP      ECCTMP       ECCTMP   
Monday      Tuesday      Wednesday

これが、タイプ (電子メール、通話) ごとにグループ化された日ごとに意味があることを願っています。

私は今、それをデータバインドする方法を確信していますか?

ビリー

4

2 に答える 2

5

棒グラフで系列をグループ化する場合は、Chart.DataBindTableメソッド (MSDN) を使用する必要があります。

次のコードを追加するだけです。

Chart1.DataBindTable(IEtable, "Day");

これにより、次のようなチャートが生成されます。 代替テキスト

テストとして使用するダミーコードを次に示します。

DataTable table = new DataTable();
table.Columns.Add("Day", typeof(string));
table.Columns.Add("Email", typeof(int));
table.Columns.Add("Calls", typeof(int));
table.Columns.Add("Contacts", typeof(int));
table.Columns.Add("Tasks", typeof(int));
table.Columns.Add("Meetings", typeof(int));
table.Columns.Add("Proposals", typeof(int));

table.Rows.Add("Monday", 1, 3, 3, 4, 5, 5);
table.Rows.Add("Tuesday", 1,6,8,2,0,3);
table.Rows.Add("Wednesday", 7, 6,3,0,2,1);
table.Rows.Add("Thursday", 1,5,5,9,3,1);
table.Rows.Add("Friday", 4,7,3,5,2,3);

//convert datatable to a IEnumerable form
var IEtable = (table as System.ComponentModel.IListSource).GetList();

//Bind the datatable to the chart using the DataBindTable method
Chart1.DataBindTable(IEtable, "Day");

ECCTMP で説明したようにラベルを表示することもできますが、凡例を追加すると、おそらく見栄えが良くなります。

于 2010-08-19T19:49:45.570 に答える