根据时间更改GridView Cell的颜色

时间:2013-04-03 18:14:00

标签: c# asp.net gridview

enter image description here

我上面有一个显示原因和时间的网格视图。

我想做的是:

  • 在时间为BETWEEN 12:00:00 PM and 12:59:59 PM AND is Beginning of Day

  • 时显示颜色RED
  • 在时间为BETWEEN 13:00:00 PM and 13:59:59 PM AND is LUNCH

  • 时显示绿色

我让它为REASON专栏工作。

以下是我的代码。注意:e.Row.Cells [4]用于列原因,e.Row.Cells [5]用于列时间

protected void GridViewEmployee_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        //Works
        if (e.Row.Cells[4].Text == "Break")
        {
            e.Row.Cells[4].BackColor = Color.Red;
        }

        //Doesn't Work
        //if (e.Row.Cells[4].Text == "Beginning Of Day" && e.Row.Cells[5].Text > " 12:00:00 PM " && e.Row.Cells[5].Text < "12:59:59 PM")
        //{
        //    e.Row.Cells[4].BackColor = Color.Red;
        //}
    }
}

2 个答案:

答案 0 :(得分:3)

您正在将时间值与字符串进行比较。所以尝试这样的操作并确保在使用<>运算符时,这两个值都必须是日期时间类型。

DateTime.Parse(e.Row.Cells[5].Text) > DateTime.Parse("12:00:00 PM ")

答案 1 :(得分:0)

你试过了吗?

    if(DateTime.Now > 12:00:00 && DateTime.Now < 13:00:00)
    {
      dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
    }