图表,显示列表中的数据

时间:2014-01-06 16:17:21

标签: c# asp.net asp.net-mvc asp.net-mvc-4 charts

我试图在asp.net中显示图形(aspx View) 在我的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 个答案:

答案 0 :(得分:-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;
}