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"; }
}
매번 모든 행을 반복 할 필요는 없습니다. e.row는 방금 바인딩 된 행을 포함합니다. 따라서 "for"부분을 제거 할 수 있습니다. 나는 그것을 고칠 수 있는지 모르겠지만 코드가 더 빨리 실행됩니다. – theGleep
'for'가 행마다 실행되기 때문에 첫 번째 행에서 오늘의 행을 모두 ""Complete "'로 설정 한 다음 두 번째 행은 더 이상 오늘과 일치하지 않으므로 모든 행을''완료되지 않음 ''으로 설정합니다. 'for'를 제거하십시오. – NetMage