In this article I will explain with an example, how to highlight GridView Row based on some condition in ASP.Net using C# and VB.Net.
A loop will be executed and values of each GridView Row will be checked, then based on some condition the GridView Row will be highlighted by changing its Background color.
 
 
HTML Markup
The following HTML markup consists of an ASP.Net GridView consisting of two BoundField columns.
<asp:GridView ID="GridView1" CssClass="Grid" runat="server" AutoGenerateColumns="false" OnRowDataBound="OnRowDataBound">
    <Columns>
        <asp:BoundField DataField="Item" HeaderText="Item"/>
        <asp:BoundField DataField="Quantity" HeaderText="Quantity"/>
    </Columns>
</asp:GridView>
 
 
Namespaces
You will need to import the following namespaces.
C#
using System.Data;
using System.Drawing;
 
VB.Net
Imports System.Data
Imports System.Drawing
 
 
Binding the ASP.Net GridView control
Inside the Page Load event, the GridView is populated using a DataTable with some dummy data.
Note: For more details about using dynamic DataTable, please refer my article Create DataTable dynamically and bind to GridView in ASP.Net.
 
C#
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        DataTable dt = new DataTable();
        dt.Columns.AddRange(new DataColumn[2] { new DataColumn("Item"), new DataColumn("Quantity") });
        dt.Rows.Add("Shirt", 145);
        dt.Rows.Add("Jeans", 0);
        dt.Rows.Add("Trousers", 190);
        dt.Rows.Add("Tie", 30);
        dt.Rows.Add("Cap", 0);
        dt.Rows.Add("Hat", 90);
        dt.Rows.Add("Scarf", 290);
        dt.Rows.Add("Belt", 150);
        GridView1.DataSource = dt;
        GridView1.DataBind();
    }
}
 
VB.Net
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    If Not IsPostBack Then
        Dim dt As New DataTable()
        dt.Columns.AddRange(New DataColumn(1) {New DataColumn("Item"), New DataColumn("Quantity")})
        dt.Rows.Add("Shirt", 145)
        dt.Rows.Add("Jeans", 0)
        dt.Rows.Add("Trousers", 190)
        dt.Rows.Add("Tie", 30)
        dt.Rows.Add("Cap", 0)
        dt.Rows.Add("Hat", 90)
        dt.Rows.Add("Scarf", 290)
        dt.Rows.Add("Belt", 150)
        GridView1.DataSource = dt
        GridView1.DataBind()
    End If
End Sub
 
 
Highlighting GridView Row as per some condition in ASP.Net
Inside the OnRowDataBound event handler of the GridView, the Cell value is compared with different quantity ranges and based on the following quantity range values, the GridView Row is highlighted i.e. the background color of the GridView Row is changed.
Quantity Range
Background Color
0
RED
1 - 50
YELLOW
51 - 100
ORANGE
 
C#
protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        int quantity = int.Parse(e.Row.Cells[1].Text);
 
        foreach (TableCell cell in e.Row.Cells)
        {
            if (quantity == 0)
            {
                cell.BackColor = Color.Red;
            }
            if (quantity > 0 && quantity <= 50)
            {
                cell.BackColor = Color.Yellow;
            }
            if (quantity > 50 && quantity <= 100)
            {
                cell.BackColor = Color.Orange;
            }
        }
    }
}
 
VB.Net
Protected Sub OnRowDataBound(sender As Object, e As GridViewRowEventArgs)
    If e.Row.RowType = DataControlRowType.DataRow Then
        Dim quantity As Integer = Integer.Parse(e.Row.Cells(1).Text)
 
        For Each cell As TableCell In e.Row.Cells
            If quantity = 0 Then
                cell.BackColor = Color.Red
            End If
            If quantity > 0 AndAlso quantity <= 50 Then
                cell.BackColor = Color.Yellow
            End If
            If quantity > 50 AndAlso quantity <= 100 Then
                cell.BackColor = Color.Orange
            End If
        Next
    End If
End Sub
 
 
Screenshot
Highlight GridView Row based on some Condition in ASP.Net
 
 
Demo
 
 
Downloads