2011-10-10 65 views
4

我有一个可以衡量客户满意度的图表控件。按名称在asp.net饼图中设置颜色

可能的值是快乐,中性和悲伤。 (例如,一组可能的值可能是:开心(23),中立(12),悲伤(19))

我想要乐于永远是绿色的,中性的永远是橙色和悲伤的永远是红色的像RAG状态)

我所设定的颜色:

fbChart.Palette = ChartColorPalette.None;
fbChart.PaletteCustomColors = new Color [] {Color.Green,Color.Orange,Color.Red};

如果所有三个可能的选项都有值,但是如果只有一个或两个带有值的颜色螺旋起来,这可以正常工作。 (例如,如果我有快乐(12)和悲伤(9),但没有中性,颜色以绿色表示快乐,橙色表示悲伤。)

有没有一种方法可以将颜色与名称绑定例如快乐/中立/悲伤)?

编辑:

的数据被加载到图表从数据表:

var fb = from f in db.tl_feedbacks 
      where f.timestamp >= new DateTime(fromYear, fromMonth, fromDay, 0, 0, 0) &&    f.timestamp <= new DateTime(toYear, toMonth, toDay, 23, 59, 59) 
       group f by f.tl_feedback_score.score into grp 
       select new 
       { 
        Score = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(grp.Key), 
        Count = grp.Select(x => x.tl_feedback_score.score).Count() 
       }; 
       fbChart.Series["Feedback"].XValueMember = "Score"; 
       fbChart.Series["Feedback"].YValueMembers = "Count"; 

       fbChart.DataSource = fb; 
       fbChart.DataBind(); 
+0

你是如何将数据绑定到图表....通过数据表? –

+0

@errorstacks - 是的,请参阅上面的代码(将其添加为编辑) – Ben

+0

如果该代码不工作,请让我知道.... –

回答

5

我假设你正在使用的数据表数据绑定到的图表和你正在使用asp.net图表控制......

我希望这个解决方案将帮助您

foreach (Series charts in fbchart.Series) 
{ 
    foreach (DataPoint point in charts.Points) 
    { 
     switch (point.AxisLabel) 
     { 
      case "Neutral": point.Color = Color.Red; break; 
      case "Happy": point.Color = Color.Green; break; 
      case "Sad": point.Color = Color.Orange; break; 
     } 
     point.Label = string.Format("{0:0} - {1}", point.YValues[0], point.AxisLabel); 

    } 
} 

和上面的代码的示例图像(图表)是这样的...下面的dividing areas with membership types using pie chart controls