ASP.NET Chart 2y轴不同的条形颜色

时间:2016-02-07 21:37:37

标签: asp.net charts

我试图在ASP.NET图表中显示2个y轴值。我可以显示我希望看到的两个y轴,但我似乎无法将它们分成不同的颜色。

AxisY Title =“Loonies” - 我可以看到它们。 AxisY2 Title =“Toonies” - 我可以看到它们。问题是列和条形图中的条形都显示为相同的颜色。我一直在尝试不同的东西,并在谷歌搜索解决方案几个小时,但我真的卡住了。任何帮助将不胜感激。

ASPX代码

<asp:Label ID="lblChartType" runat="server" Text="Select Chart Type" Width="130"> </asp:Label>
        <asp:DropDownList ID="ddlChartType" runat="server" AutoPostBack="True">
            <asp:ListItem Text="Line Graph" Value="Line"></asp:ListItem>
            <asp:ListItem Text="Bar Graph" Value="Bar"></asp:ListItem>
            <asp:ListItem Text="Column" Value="Column"></asp:ListItem>
        </asp:DropDownList>
        <br /><br />
        <asp:Chart ID="Chart1" runat="server" Height="275px" Width="500px">
            <Titles><asp:Title Text="Coin Levels % (Last 24 Hours)" /></Titles>
            <Series>
            <asp:Series Name="Series1">
            </asp:Series>
            </Series>
            <ChartAreas>
                <asp:ChartArea Name="ChartArea1" >
                    <AxisX Title="Time"> </AxisX>
                    <AxisY Title="Loonies"> </AxisY>
                    <AxisY2 Title="Toonies"></AxisY2>
                </asp:ChartArea>

                </ChartAreas>
        </asp:Chart>
    </center>   

cs代码     public partial class Charts:System.Web.UI.Page {     共享s = new Shared();

protected void Page_Load(object sender, EventArgs e)
{
    Chart1.Series["Series1"].ChartType = (SeriesChartType)Enum.Parse(typeof(SeriesChartType), ddlChartType.SelectedValue);
    GetChartData();
}

private void GetChartData()
{
    try
    {
        using (SqlConnection con = new SqlConnection(s.CS))
        {
            SqlCommand cmd = new SqlCommand("hiddenSP", con);
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "hiddenSP";
            Series series = Chart1.Series["Series1"];
            Chart1.Series[0].XValueType = ChartValueType.Time;
            Chart1.ChartAreas[0].AxisX.LabelStyle.Format = "HH:mm";

            con.Open();
            SqlDataReader rdr = cmd.ExecuteReader();
            while (rdr.Read())
            {
            series.Points.AddXY(rdr["NEWSTAMP"].ToString().Replace("2016", "").Trim(), rdr["Loonies"].ToString().Replace("%","").Trim());
                series.Points.AddXY(rdr["NEWSTAMP"].ToString().Replace("2016", "").Trim(), rdr["Toonies"].ToString().Replace("%", "").Trim());

            }
        }
    }
    catch (Exception ex)
    {
        s.WebError(ex);
    }
}
}

1 个答案:

答案 0 :(得分:0)

解决了问题!

    foreach (var item in Chart1.Series[0].Points)

            {
                if (x==0)
                {
                    Color c = Color.FromArgb(255, 0, 0);
                    item.Color = c;
                    x++;
                }
                else
                {
                    Color c = Color.FromArgb(0, 0, 255);
                    item.Color = c;
                    x = 0;
                }