如何在ASP.NET中显示多系列柱形图

5 .net c# asp.net data-visualization mschart

在我的Web应用程序中,我需要显示从数据表绑定的柱形图数据,我在我的统计图区域中的X轴上有3列,我需要在一侧显示col1,在第二列显示,并且需要为系列显示图例显示不同的颜色也来自数据表。

我需要像这样的我该怎么做,请任何人都可以帮助我该怎么做。

谢谢

jsa*_*ics 4

假设您DataTable有以下列/类型:

    Columns.Add("Month", typeof(DateTime));
    Columns.Add("Charges", typeof(double));
    Columns.Add("Payments", typeof(double));
Run Code Online (Sandbox Code Playgroud)

ASPX:

    <asp:Chart ID="Chart1" runat="server" Height="400px" Width="600px">
        <ChartAreas>
            <asp:ChartArea Name="ChartArea1">
                <AxisY>
                    <MajorGrid LineColor="DarkGray" LineDashStyle="Dot" />
                    <LabelStyle Format="C2" />
                </AxisY>
                <AxisX>
                    <MajorGrid LineColor="DarkGray" LineDashStyle="Dot" />
                </AxisX>
            </asp:ChartArea>
        </ChartAreas>
        <Legends>
            <asp:Legend Name="Legend1">
            </asp:Legend>
        </Legends>
    </asp:Chart>
Run Code Online (Sandbox Code Playgroud)

CS:

    protected void Page_Load(object sender, EventArgs e)
    {
        foreach (DataRow r in dt.Rows)
        {
            Series s = new Series(string.Format("{0} {1}", ((DateTime)r["Month"]).ToString("MMM"), ((DateTime)r["Month"]).Year));
            s.ChartType = SeriesChartType.Column;
            s.Points.AddXY("Charges", new object[] { r["Charges"] });
            s.Points.AddXY("Payments", new object[] { r["Payments"] });

            Chart1.Series.Add(s);
        }
    }
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


编辑:假设您DataTable有以下列/类型:

    Columns.Add("Month", typeof(string));
    Columns.Add("Charges", typeof(double));
    Columns.Add("Payments", typeof(double));
Run Code Online (Sandbox Code Playgroud)

或者

    Columns.Add("Month");
    Columns.Add("Charges");
    Columns.Add("Payments");
Run Code Online (Sandbox Code Playgroud)

那么你应该将代码更改为:

    protected void Page_Load(object sender, EventArgs e)
    {
        foreach (DataRow r in dt.Rows)
        {
            Series s = new Series((string)r["Month"]);
            s.ChartType = SeriesChartType.Column;
            s.Points.AddXY("Charges", new object[] { r["Charges"] });
            s.Points.AddXY("Payments", new object[] { r["Payments"] });

            Chart1.Series.Add(s);
        }
    }
Run Code Online (Sandbox Code Playgroud)