Search code examples
c#asp.netrepeater

how to set background colur of reapeater td dynamically


I'm using one repeater. In that repeater I have one column named 32. If this column gets the value = increased I want to show back color green else red

 <asp:Repeater ID="grdvPos" runat="server">
     <ItemTemplate>
       <td >
        <%#Eval ("32")%>
       </td>
       </ItemTemplate>

screenshot


Solution

  • You can use the ItemDataBound event.

    Change your aspx code as,

           <ItemTemplate>
              <td runat="server" ID="TD1">
                <%#Eval ("32")%>
               </td>
           </ItemTemplate>
    

    and in your backend code,

    protected void grdvPos_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
            if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
            {
                HtmlTableCell td = (HtmlTableCell)e.Item.FindControl("TD1"); 
                if (td.InnerText.Contains("Decreased"))
                    td.Attributes.Add("style", "background-color:Red;");
                else
                  td.Attributes.Add("style", "background-color:Green;");
             }
    }