如何透過DataTable當作圖表的DataSource畫出圖表
使用Micosoft Chart Control畫圖表,有2種餵值的方式:
1 是靜態的在aspx頁面上給定X軸Y軸的Value,也就是畫出Series的Point。
2 是動態的在C#後置碼中,將Chart圖表DataBinding Enumerable Data,也就是陣列型式的資料。
未來專案會很常使用到DataBinding動態的產生圖表,所以在這裡我要介紹的方法是使用DataBiding至DataTable的寫法。
由於我的專案是用ASP.NET配合MVC架構(非ASP.NET MVC Component),首先先下一段SQL Command取出我要統計的資料。
工作類型統計:
(X軸)工作類型 | (Y軸)人數 |
無選擇 | 1038 |
全職爸爸/媽媽 | 1010 |
人資 | 231 |
業務 | 643 |
客服 | 326 |
行銷 | 357 |
生產 | 199 |
企劃 | 325 |
接著就要用以上的資料來產生圖表,首先在Default.aspx頁面上加入Chart元件:
<asp:Chart ID="Chart1" runat="server" Height="400px" Width="500px"> <series> <asp:series ChartArea="chartArea1" Name="series1" ></asp:series> </series> <chartareas> <asp:chartarea Name="chartArea1" ></asp:chartarea> </chartareas> </asp:Chart> |
再來在SQLServerDAL的部份寫一個Function回傳DataTable,主要是取得資料庫裡的值存入DataTable裡。
public DataTable GetJobChart() DataRow dr; dt.Rows.Add(dr); |
最後在頁面後置碼Default.aspx.cs的部分,將回傳的DataTable當作是Chart的DataSource來產生圖表。
public partial class _Default : System.Web.UI.Page Chart1.DataSource = dt; Chart1.DataBind(); |
我在Default.aspx頁面上多加了一個Button,當發生Click事件後就能去呼叫BuilChart1()這個Function動態的產生圖表。
其實Chart支援許多DataSource的用法:
在微軟官方Sample裡並沒有介紹使用DataTable的方法,但我覺得用DataTable當DataSource很方便,簡單明瞭。
我寫的專案中也很常使用Repeater這個元件,我也是餵它吃DataTable…
Anyway 想快速上手DataBinding Microsoft Chart Contorol,這篇文章就供參考囉。
留言列表