Saturday, 20 October 2012

change row color in repeater in asp.net c#


<asp:repeater id="rpOrderSummary" runat="server" onItemDataBound="FormatRepeaterRow">
<ItemTemplate>
<tr id="tRow" runat="server">
<TD width="10%" align="center" class="data" runat="server" ID="Td1">
<A id="A2" runat="server">
<asp:Label ID="lblCustomerID" Runat="server" text='<%#(DataBinder.Eval(Container, "DataItem.CustomerID"))%>'>
</asp:Label></A> </TD>
<TD width="10%" align="center" class="data" runat="server" ID="Td2">
<asp:Label ID="lblCustomerName" Runat="server" text='<%#(DataBinder.Eval(Container, "DataItem.CustomerName"))%>'>
</asp:Label>
</TD>
<TD width="10%" align="center" class="data" runat="server" id="Td3"><A id="A1" runat="server">
<asp:label id="lblCompanyName" runat="server" text='<%#(DataBinder.Eval(Container, "DataItem.CompanyName"))%>'>
</asp:label></A>
</TD>
</tr>
</ItemTemplate>
''''''''''''''''''
Now i will start my code behind to .ascx.cs file. the code will follow.
'''''''''''''''
private void Page_Load(object sender, System.EventArgs e)
{
SqlConnection cn  = new SqlConnection("server=localhost;database=Test;uid=test;pwd=test;");
cn.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM V_CustomersDetails", cn);
SqlDataReader dr = cmd.ExecuteReader();
rpOrderSummary.DataSource = dr;
rpOrderSummary.DataBind();
}

protected void FormatRepeaterRow(Object sender, RepeaterItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Label lblCompanyName = new Label();
HtmlTableRow tr = new HtmlTableRow();
tr = e.Item.FindControl("tRow");
if(lblCompanyName.Text == "")
{
tr.BgColor = "red";
}
else
{
tr.BgColor = "Green";
}
}
}

No comments:

Post a Comment