无法在网格视图上设置单元格颜色

时间:2013-04-04 16:55:39

标签: c# asp.net gridview

我有一个简单的每个循环检查我的gridview的第10个单元格中的文本,然后将该单元格的颜色设置为绿色或红色依赖于文本。

除了第一行中的第一个单元格被忽略之外,这个工作正常。我有类似的情况与for循环,但不是每个。

继承我的代码:

 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        GridView vg = GridView1;

        foreach (GridViewRow row in vg.Rows)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if (e.Row.Cells[10].Text == "Order has been dispatched.")
                {
                    e.Row.Cells[10].BackColor = Color.LawnGreen;
                }

                if (e.Row.Cells[10].Text == "Order is being processed.")
                {
                    e.Row.Cells[10].BackColor = Color.Red;
                }

            }
        }

    }

1 个答案:

答案 0 :(得分:2)

我不知道这是否会有所帮助。可能不是。但是你有冗余的代码。将代码更改为以下内容,并确保为每一行调用事件处理程序。我不认为您必须确保GridViewRow.RowType是DataRow,因为您只会在DataRow上获取此事件。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.Cells[10].Text == "Order has been dispatched.")
       e.Row.Cells[10].BackColor = Color.LawnGreen;
    if (e.Row.Cells[10].Text == "Order is being processed.")
        e.Row.Cells[10].BackColor = Color.Red;
}