asp.net - How to change gridview cell color based on condition using C# -


i want change color of grdiview cell based on condition , condition if passport expire in 1 month or if expired want check both condition if going expire or if expired want change color red. thanks

protected void onrowdatabound_gvpass(object sender, gridviewroweventargs e)     {       datetime todaysdate = datetime.now.date;       if (e.row.rowtype == datacontrolrowtype.datarow)       {           label lblpassportexpdate = (label)e.row.findcontrol("passportexpdate");         datetime passportexpdatedate = datetime.parse(lblpassportexpdate.text);         if (passportexpdatedate < datetime.today || passportexpdatedate < todaysdate.adddays(30))         {           //e.row.backcolor = system.drawing.color.red;           gvdriverstatus.columns[3].itemstyle.forecolor = system.drawing.color.red;         }        }     } 

here's simplified piece of code worked me , adapt 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;         }     } } 

this result get:

enter image description here

note i'm using hard coded refdate of 07/15/1996, makes sense data in local database.

edit: made interval, 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;         }     } } 

enter image description here


Comments