これは私のグリッドビュー出力です。列と行は動的にバインドされます。
Anand R 4:4:18 NULL 6:34:52 8:25:16 NULL
Arunkumar S 8:37:31 NULL 9:1:42 8:48:27 NULL
Bharathi R 6:12:24 NULL 8:45:40 11:39:12 12:27:26
Gnanaguru V 6:32:20 NULL 5:35:56 3:50:20 NULL
Ilayaraja K 7:37:30 NULL 10:1:15 8:58:43 NULL
Imran Khan S 7:46:48 NULL 12:15:4 NULL NULL
セルの値が 8:30 時間よりも大きい場合は何らかの色が必要であり、8:30 未満の場合はセルが何らかの色である必要があり、null 値の場合は元の値が同じままであることを意味するため、出力が必要です。したがって、条件を確認するには、グリッドビューの行と列を動的にループする必要があります。gridview rowdatabound で次のコードを使用していますが、正確な出力が得られません..
foreach (GridViewRow row in gvshowreport.Rows)
{
for (int i = 0; i < row.Cells.Count; i++)
{
if (i != 0)
{
string value = row.Cells[i].Text;
if (value != " ")
{
string[] values = Regex.Split(value, ":");
int k = Convert.ToInt32(values[0]);
int m = Convert.ToInt32(values[1]);
int min = k * 60;
int add = min + m;
if (add <= 510)
{
e.Row.Cells[i].BackColor = System.Drawing.Color.LightGreen;
}
else
{
e.Row.Cells[i].BackColor = System.Drawing.Color.Red;
}
}
else
{
e.Row.Cells[i].BackColor = System.Drawing.Color.PaleGoldenrod;
}
}
}
}
初めてループが完全に実行され、グリッドビューの最初の行とセルの値が取得されます。次回ループを実行すると、同じ最初の行のセル値が取得されます。行と列をループするのを間違えたと思います...
if (e.Row.RowType == DataControlRowType.DataRow)
{
foreach(TableCell cell in e.Row.Cells)
val = cell.Text;
}
私はこのコードを使用して結果を達成しました..投稿してくれてありがとう