Click here to Skip to main content
15,886,067 members
Articles / Web Development / ASP.NET
Tip/Trick

Changing the color of a row in a GridView in ASP.NET

Rate me:
Please Sign up or sign in to vote.
4.50/5 (6 votes)
27 Aug 2011CPOL 110.1K   7   4
How to change the color of a row in a GridView in ASP.NET.

This article describes changing the color of a GridView row depending on the value of a column and changing the value of a column depending on the value of that column.


First, let's start with binding a GridView with data from the database. Create a GridView.


ASP.NET
<asp:GridView ID="grdDoc" runat="server" AllowPaging="True" 
        AutoGenerateColumns="False" DataKeyNames="DOCCODE" Height="40px" 
        PageSize="8" ShowFooter="True"   Visible="false" 
        onpageindexchanging="grdDoc_PageIndexChanging" 
        onselectedindexchanged="grdDoc_SelectedIndexChanged" >
    <PagerSettings Mode="NumericFirstLast" />
    <RowStyle BackColor="WhiteSmoke" BorderColor="CornflowerBlue" 
        ForeColor="Black" Height="30px" />
    <Columns>
        <asp:TemplateField HeaderText="Dose">
            <ItemTemplate>
                <asp:LinkButton ID="LinkButton1" runat="server" 
                      CommandName="select" 
                      Text='<%#Eval("DOCCODE")%>'>
                </asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="DOCNAME" HeaderText="Description" />
        <asp:BoundField DataField="DOCDEPT" HeaderText="Description" />
        <asp:BoundField DataField="DOCACTIVE" HeaderText="Description" />
    </Columns>
    <FooterStyle BackColor="Silver" Height="25px" />
    <PagerStyle BackColor="DarkGray" />
    <HeaderStyle BackColor="#000084" Font-Bold="True" ForeColor="White" />
</asp:GridView>

Load data from a database:


C#
protected void Page_Load(object sender, EventArgs e)
{
    string strSQLconnection = 
      "Data Source=dbServer;Initial Catalog=testDB;Integrated Security=True";
    SqlConnection sqlConnection = new SqlConnection(strSQLconnection);
    SqlCommand sqlCommand = new SqlCommand("select DOCCODE,DOCNAME," + 
        "DOCDEPT, DOCACTIVE from DOCTORS", sqlConnection);
    sqlConnection.Open();
    SqlDataReader reader = sqlCommand.ExecuteReader();
    grdDoc.DataSource = reader;
    grdDoc.DataBind();
}

Change the color of a row depending on whether the Doctor is Active or Inactive.


C#
protected void grdDoc _RowDataBound(object sender, GridViewRowEventArgs e)
{
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if ((string.IsNullOrEmpty(e.Row.Cells[3].Text) != true) || 
                       (e.Row.Cells[3].Text != "&nbsp;"))
            {
                Char result = Convert.ToInt32(e.Row.Cells[3].Text);
                if (result == ‘Y’) e.Row.BackColor = System.Drawing.Color.Aqua;
                else if (result ==’N’) e.Row.BackColor = System.Drawing.Color.Cornsilk;
            }
       }
    }
}

First, we need to check if the data in the fourth column is null or the column is empty. If the Doctor is Active, then the row color will be AQUA. Or else the Color of the row will be CORNSILK.


Change the Color of the cells depending on the Value of a column:


C#
protected void grdDoc _RowDataBound(object sender, GridViewRowEventArgs e)
{
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if ((string.IsNullOrEmpty(e.Row.Cells[3].Text) != true) 
                  || (e.Row.Cells[3].Text != "&nbsp;"))
            {
                string result = Convert.ToInt32(e.Row.Cells[2].Text);
                if (result == "M.S")
                    e.Row.Cells[3].BackColor= System.Drawing.Color. Aquamarine;
                else
                    e.Row.Cells[3].BackColor= System.Drawing.Color. BlanchedAlmond;
            }
        }
    }
}

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
India India
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
GeneralMy vote of 4 Pin
Upasak Poddar8-Jul-13 22:58
Upasak Poddar8-Jul-13 22:58 
Questionchange colours in rows of gridview Pin
Member 96818624-Feb-13 23:45
Member 96818624-Feb-13 23:45 
QuestionNice Pin
Júnior Pacheco7-Nov-12 3:08
professionalJúnior Pacheco7-Nov-12 3:08 
GeneralReason for my vote of 4 good code !! Pin
Sunny_Kumar_31-Oct-11 21:37
Sunny_Kumar_31-Oct-11 21:37 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.