基于值绘制行,仅使用2种颜色

时间:2013-07-08 07:41:13

标签: c# gridview

想象一下,我们有一个网格,如:

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

我想根据Column1上的值绘制这些行,我们不知道值(因此条件格式不可能)它们可能是任何东西,但我只是想按颜色对它们进行分组,例如我想要Column1中的A为粉红色的行,然后是B黄色的行,然后是C粉红色,D黄色等等。我可以使用哪种迭代?

2 个答案:

答案 0 :(得分: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;
    }
}

答案 1 :(得分: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;
}
}