2014-01-06 50 views
2

我想顯示在asp.net(ASPX視圖)圖 在我的aspx文件中顯示的數據我有這樣的:圖表,從列表中

<asp:Chart ID="Chart1" runat="server" OnLoad="Chart1_Load"> 
    <series> 
     <asp:Series Name="Series1"> 
       <Points> <asp:DataPoint AxisLabel="Test 1" YValues="10" /> 
     <asp:DataPoint AxisLabel="Test 2" YValues="20" /> 

     <asp:DataPoint AxisLabel="Test 3" YValues="30" /> 
     <asp:DataPoint AxisLabel="Test 4" YValues="40" /> 
      </Points> 
     </asp:Series> 
    </series> 
    <chartareas> 
     <asp:ChartArea Name="ChartArea1"> 
     </asp:ChartArea> 
    </chartareas> 
</asp:Chart> 

和我也有一個整數列表進入ASPX。

<% 
    List<int> timeList = new List<int>(); 
%> 

和在aspx中我把數據放入LIst。

我的問題是,我想, 而不是YValues="30"我想從列表中獲取值。

我有問題來實現這一點。我花了很多時間試圖找到這個問題。

回答

-1
protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     DataTable dt = GetTestData(); 
     LoadChartCurrencyTotal(dt); 
    } 
} 

private void LoadChartCurrencyTotal(DataTable initialDataSource) 
{ 
    for (int i = 1; i < initialDataSource.Columns.Count; i++) 
    { 
     Series series = new Series(); 
     foreach (DataRow dr in initialDataSource.Rows) 
     { 
      int y = (int)dr[i]; 
      series.Points.AddXY(dr["Data"].ToString(), y); 
     } 
     Chart1.Series.Add(series); 
    } 
} 

private DataTable GetTestData() 
{ 
    DataTable dt = new DataTable(); 
    dt.Columns.Add("Data", Type.GetType("System.String")); 
    dt.Columns.Add("Value1", Type.GetType("System.Int32")); 
    dt.Columns.Add("Value2", Type.GetType("System.Int32")); 
    dt.Columns.Add("Value3", Type.GetType("System.Int32")); 
    DataRow dr1 = dt.NewRow(); 
    dr1["Data"] = "series1"; 
    dr1["Value1"] = 32; 
    dr1["Value2"] = -2; 
    dr1["Value3"] = 46; 
    dt.Rows.Add(dr1); 
    DataRow dr2 = dt.NewRow(); 
    dr2["Data"] = "series2"; 
    dr2["Value1"] = -62; 
    dr2["Value2"] = 0; 
    dr2["Value3"] = 99; 
    dt.Rows.Add(dr2); 
    DataRow dr3 = dt.NewRow(); 
    dr3["Data"] = "series3"; 
    dr3["Value1"] = 19; 
    dr3["Value2"] = 23; 
    dr3["Value3"] = 98; 
    dt.Rows.Add(dr3); 
    return dt; 
}