asp.net柱形图c#中每列的着色

时间:2012-05-23 06:09:25

标签: c# asp.net colors charts

我在asp.net网站上第一次使用c#,我正在创建图表。 我创建了一个柱形图 - 2D,代码就像这样,

protected void chrtTickets_Load(object sender, EventArgs e)
        {
            using (SqlConnection connection = new SqlConnection(ConnectionString))
            {

                connection.Open();


                SqlCommand cmmd6 = new SqlCommand("getHowTicketsLoggedChart", connection);
                cmmd6.CommandType = CommandType.StoredProcedure;


                DataSet ds1 = new DataSet();

                SqlDataAdapter dad = new SqlDataAdapter(cmmd6);

                dad.Fill(ds1);

                chrtTickets.DataSource = ds1;


                chrtTickets.Series["Series1"].XValueMember = "MonYYYY";

                chrtTickets.Series["Series1"].YValueMembers = "aa";


                chrtTickets.DataBind();
                connection.Close();


            }
        }

但我有存储过程,它返回另一个字段"描述"与MonYYYy和aa一起使用,因为它们用于xaxis和yaxis。

但根据"描述"字段值说:电子邮件,电话,门户网站。我希望为每列分配不同的颜色,具体取决于每行的描述值,如果它的Email->红色等等。

有人可以指导我完成这个吗?

我的意思是我的数据将是这样的:所以我不会事先知道什么是颜色类型值,这是我的存储过程从db返回给我的表值。

颜色类型| y轴值| x轴


电子邮件连接器| 24 | 2011年12月 电话| 32 | 2011年12月 电子邮件连接器| 643 | 2012年1月 内部| 32 | 2012年1月 电话| 455 | 2012年1月 门户| 2 | 2012年1月 销售订单| 2 | 2012年1月

它是前5种类型中的一种。电子邮件,门户网站,但许多x轴值。

数据点不会被人知道。他们很有活力。

1 个答案:

答案 0 :(得分:1)

你可以尝试这个,它应该随机选择下一个栏的颜色

Color[] colors = new Color[] { Color.Red, Color.Green, Color.Wheat, Color.Gray. Color.Black,  Color.Blue};
foreach (Series series in chrtTickets.Series)
{
    foreach (DataPoint point in series.Points)
    {
        Random random = new Random();
        int randomNumber = random.Next(0, 5);
        point.LabelBackColor = colors[ randomNumber];
    }
}

这是主要文章http://forums.asp.net/t/1652369.aspx/1