Change the forecolor of an item in a repeater based on the status

In this blog we will know how to Change the fore color of an item in a repeater based on the status.

 

 

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title>Untitled Page</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

    <asp:Repeater ID="Repeater1" runat="server" >

    <HeaderTemplate>

   <table border="1" cellpadding="0" cellspacing="0">

    </HeaderTemplate>

     <ItemTemplate>

              

      <tr style="color: <%# GetRowColor(DataBinder.Eval(Container.DataItem, "status")) %>">

      <td width="70px" align="center" valign="middle">

       <asp:Label ID="lblID" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "ID") %>' />

       </td>

      <td valign="middle" width="70px">

       <%#DataBinder.Eval(Container.DataItem, "status") %>

      </td>

       <td valign="middle" width="70px">

       <%#DataBinder.Eval(Container.DataItem, "name") %>

       </td>

      <td valign="middle" width="70px">

    <%#DataBinder.Eval(Container.DataItem, "address")%>

            </td>

         </tr>

         </ItemTemplate>

    <FooterTemplate>

       </table>

      </FooterTemplate>

            </asp:Repeater>

    </div>

    </form>

</body>

</html>

 

 

using System;

using System.Configuration;

using System.Data;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

 

public partial class _Default : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        if (!IsPostBack)

        {

            DataTable dt = CreateDataSource();

            Repeater1.DataSource = dt;

            Repeater1.DataBind();

        }

    }

    protected DataTable CreateDataSource()

    {

        DataTable dt = new DataTable();

        DataRow dr = null;

        dt.Columns.Add(new DataColumn("ID", typeof(string)));

        dt.Columns.Add(new DataColumn("status", typeof(string)));

        dt.Columns.Add(new DataColumn("name", typeof(string)));

        dt.Columns.Add(new DataColumn("address", typeof(string)));

        dr = dt.NewRow();

        dr["ID"] = "E001";

        dr["status"] = "1";

        dr["name"] = "Raj";

        dr["address"] = "pune";

        dt.Rows.Add(dr);

 

        dr = dt.NewRow();

        dr["ID"] = "E002";

        dr["status"] = "2";

        dr["name"] = "ravi";

        dr["address"] = "mumbai";

        dt.Rows.Add(dr);

 

        dr = dt.NewRow();

        dr["ID"] = "E003";

        dr["status"] = "3";

        dr["name"] = "rahul";

        dr["address"] = "puri";

        dt.Rows.Add(dr);

 

        return dt;

    }

    public string GetRowColor(object obj)

    {

        string color = "white";

        if (!string.IsNullOrEmpty(obj.ToString()))

        {

            string status = obj.ToString();

            switch (status)

            {

                case "1":

                    color = "red";

 

                    break;

                case "2":

                    color = "green";

 

                    break;

 

                case "3":

                    color = "blue";

 

                    break;

                default:

                    color = "white";

                    break;

            }

        }

        return color;

    }

}