2013-07-08 48 views
0

假设我们有一个网格,如:绘画行,只使用2种颜色

Column1  Column2 .... 
A    432423 
A    344 
A    5 
B    45 
B    77 
C    65 
D    4 
D    545 
.    . 
.    . 
.    . 

我要画基于列1的值这些行,我们不知道该值(这样条件格式化是不可能的),他们可能是任何东西,但我只是想按颜色对它们进行分组,例如我想要Column1中的A是粉红色的行,然后是B黄色的行,然后是C粉红色的行,D黄色和等等。我可以使用什么样的迭代?

+0

你怎么能颜色由1个值的行当你说你不知道价值? – SamiHuutoniemi

+0

我的意思是,有成千上万的行,所以我不可能说“包含值A的行应该是粉红色的”。 – Sin5k4

回答

1

我会用RowDataBound

private Object lastValue = null; 
private Color lastColor = Color.Yellow; 
protected void gridview1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     DataRowView row = (DataRowView)e.Row.DataItem; 
     Object thisValue = row["Column1"]; 
     if(thisValue == lastValue) 
      e.Row.BackColor = lastColor; 
     else 
      e.Row.BackColor = lastColor == Color.Yellow ? Color.Pink : Color.Yellow; 
     lastValue = thisValue; 
     lastColor = e.Row.BackColor; 
    } 
} 
0

嗯,有些类型的详细信息和框架的信息将是很好的,但作为一个纯粹的算法:

for(int i = 0;i<columns[0].Count;i++) 
{ 
Colour colour = Utils.GetColourFromValue(columns[0][i].Value); 
for(int j = 0;i<columns.Count;j++) 
{ 
columns[j][i].Colour = colour; 
} 
} 
相关问题