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?
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;
}
}
}
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';");
}
}
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With