Here's the simplified part of the code that worked for me, and you could easily adapt to your case:
protected void Page_Load(object sender, EventArgs e) { refDate = new DateTime(1996, 7, 15); } protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowIndex >= 0) { if (DateTime.Parse(e.Row.Cells[3].Text) < refDate) { e.Row.Cells[3].BackColor = Color.Red; } } }
As a result, I get:

Note. I am using hardcoded refDate from 07/15/1996, so it makes sense with the data in my local database.
EDIT: I did this at intervals, just a little more interesting:
protected void Page_Load(object sender, EventArgs e) { minDate = new DateTime(1996, 7, 7); maxDate = new DateTime(1996, 7, 15); } protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowIndex >= 0) { var curDate = DateTime.Parse(e.Row.Cells[3].Text); if (minDate < curDate && curDate < maxDate) { e.Row.Cells[3].BackColor = Color.Red; e.Row.Cells[3].ForeColor = Color.White; } } }

source share