Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Highlight GridView row when a condition is met

I'm using VS2005 C# Server-side coding.

I'm curious to know that in VS2005 version, is it possible to highlight a row in a GridView when a condition is met? E.g. If column Risk is stored as high in the database for that specific row, the row will be highlighted in Red.

Is it possible?


Edit:

Current code:

protected void GridView1_OnRowDataBound(Object sender, GridViewRowEventArgs e)
{

if (e.Row.RowType == DataControlRowType.DataRow)
{
    // do your stuffs here, for example if column risk is your third column:
    if (e.Row.Cells[3].Text == "H")
    {
        e.Row.BackColor = Color.Red;
    }
}
}

I assume column cell starts from 0, so mine is at cell 3. But the color still does not change.

Anyone has any idea?

like image 577
gymcode Avatar asked Dec 12 '11 06:12

gymcode


3 Answers

Yes, add OnRowDataBound="yourGridview_RowDataBound" to your gridview. This event gets triggered for every gridview row.

In the code behind, have this:

public void yourGridview_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        // do your stuffs here, for example if column risk is your third column:
        if (e.Row.Cells[2].Text == "high")
        {
            e.Row.BackColor = Color.Red;
        }
    }
}
like image 159
Pupper Avatar answered Oct 23 '22 15:10

Pupper


Use RowDataBound Event. In this event you would get to add the css based upon your condition

 void GridView_RowDataBound(Object sender, GridViewRowEventArgs e)
  {

    if(e.Row.RowType == DataControlRowType.DataRow)
    {
      // Logic for High
      if(e.Row.Cells[1].Text > 100)
      //set color
      e.Row.Attributes.Add("style", "this.style.backgroundColor = '#FFFFFF';");

    }

  }
like image 21
Anand Avatar answered Oct 23 '22 15:10

Anand


You should subscribe for the RowDataBound event of the grid and catch hold of the row which has your column mentioning Risk as High then set the BackColor of the row to your highlighting color choice

 If (e.Row.RowType == DataControlRowType.DataRow)
 {
        //DataBinder.Eval(e.Row.DataItem,"Risk"))
        //if this is high then set the color
        e.Row.BackColor = Drawing.Color.Yellow
 }

MSDN Formatting the GridView Based on the Underlying Data

like image 1
V4Vendetta Avatar answered Oct 23 '22 17:10

V4Vendetta