1

我正在从 SQL 数据库中获取一些列,并使用它们来填充带有绑定列的 gridview。某些列包含日期项。

我正在尝试遍历列中的每个单元格,并根据今天的日期测试输入的日期。如果日期匹配,则单元格文本应显示为“完成”,如果不匹配,则应显示为“未完成”。

我遇到的问题是,在测试它们是否匹配时,我可以更改匹配的文本,但是当进入 else 语句来更改其余部分时,所有单元格都会更改。我尝试了一个明确的 if,else if 以及颠倒测试的顺序。我最初的想法是单元格正在根据需要进行更改,但是在第二次测试中,每一行都再次循环通过,但所有内容都在 foreach 循环中。

 protected void equipmentGV_RowDataBound(object sender, GridViewRowEventArgs e)
    {
  
        foreach (GridViewRow row in equipmentGV.Rows)
        {

            if (row.Cells[1].Text == DateTime.Today.ToString())
            {
                row.Cells[1].Text = "Complete";
            }
            else { row.Cells[1].Text = "Not Complete"; }
        }

上面的结果是第二列中的所有单元格 == “未完成”,即使是那些具有今天日期的单元格,但是当删除 else 语句时,今天的条目将根据需要显示“完成”。

4

1 回答 1

0

theGleep 的以下回答确实解决了我的问题

“您不需要每次都迭代所有行。e.row 包含刚刚绑定的行。因此您可以删除“for”部分。我不知道这是否可以解决它,但您的代码会跑得更快 :) ”

于 2017-10-27T21:26:16.773 回答