这是我的gridview输出。列和行将动态绑定。
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时,单元格应该是某种颜色,而对于空值,原始值保持相同。所以我需要动态循环遍历gridview行和列来检查条件。我在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;
}
}
}
}
第一次我的循环运行完美时,它将gridview第一行和单元格值。而下一次循环运行它再次采用相同的第一行单元格值。我想我错误地循环遍历行和列...
if(e.Row.RowType == DataControlRowType.DataRow)
{
foreach(TableCell cell in e.Row.Cells)
val = cell.Text;
}
我已经使用此代码来实现我的结果..感谢大家发帖
答案 0 :(得分:1)
作为你的代码,你应该用变量“row”替换“e.Row.Cells [i]”
答案 1 :(得分:1)
我们将在Gridview的Row_dataBound事件中更改单元格的颜色
当单个记录与gridView Row_dataBound事件绑定时会触发
protected void gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//Your Cell Control Find, than change the color according to condition
}
}
如果有帮助,请标记答案