2

对于每个循环,我有一个简单的检查网格视图第 10 个单元格中的文本,然后将该单元格的颜色设置为取决于文本的绿色或红色。

除了第一行中的第一个单元格被忽略之外,这一切正常。我在 for 循环中遇到过与此类似的情况,但不是 for each。

这是我的代码:

 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;
                }

            }
        }

    }
4

1 回答 1

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;
}
于 2013-04-04T17:47:14.550 回答