1

SQL データベースからいくつかの列を取得し、それらを使用してグリッドビューにバインドされた列を設定しています。一部の列には日付項目が含まれています。

列の各セルを調べて、今日の日付に対して入力された日付をテストしようとしています。日付が一致する場合、セル テキストは「完了」と表示され、一致しない場合は「未完了」と表示されます。

私が抱えている障害は、それらが一致するかどうかをテストするときに、一致するテキストを変更できることですが、残りを変更するためにelseステートメントに入ると、すべてのセルが変更されます。テストの順序を逆にするだけでなく、明示的なif、else ifを試しました。私の最初の考えでは、セルは必要に応じて変更されていましたが、2 回目のテストでは各行が再びループされていましたが、すべてが 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"; }
        }

上記の結果は、2 番目の列のすべてのセル == 「未完了」であり、今日の日付のセルも含まれますが、else ステートメントが削除されると、今日のエントリは希望どおりに「完了」と表示されます。

4

1 に答える 1