2

在此处输入图像描述

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

我想做的是:

  • 时间到时显示红色BETWEEN 12:00:00 PM and 12:59:59 PM AND is Beginning of Day

  • 时间到时显示绿色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;
        //}
    }
}
4

2 回答 2

3

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

DateTime.Parse(e.Row.Cells[5].Text) > DateTime.Parse("12:00:00 PM ")
于 2013-04-03T18:18:34.777 回答
0

你有没有尝试过:

    if(DateTime.Now > 12:00:00 && DateTime.Now < 13:00:00)
    {
      dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
    }
于 2013-04-03T18:20:51.280 回答