我有一个简单的每个循环检查我的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;
}
}
}
}
答案 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;
}