Click here to Skip to main content
15,890,282 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I have create Complex Class

C#
public class BussinessReg
   {
       public BussinessDetails BussinessDetails { get; set; }
       public UserDetails UserDetails { get; set; }
       public PasswordDetails PasswordDetails { get; set; }
       public BankDetailsEntity BankDetailsEntity { get; set; }
       public List<ServicesCatSub> ServicesCatSub { get; set; }
   }


I am tring to fill Repeater

inside Listview i have DataList

ASP.NET
   <asp:Repeater runat="server" ID="repterbuss">
                                <ItemTemplate>
   <%# Eval("BussinessDetails.Contact_Presn")%>
   <asp:DataList ID="DList" RepeatColumns="2" DataSource='<%# Eval("ServicesCatSub ")%>' runat="server" CssClass="MainTable" CellPadding="15">

    <%# Eval("Title")%>
   <ItemTemplate>
 </ItemTemplate>
</asp:DataList>
 </ItemTemplate>
 </asp:Repeater>



but getting error at this line


ASP.NET
<asp:DataList ID="DList" RepeatColumns="2" DataSource='<%# Eval("ServicesCatSub ")%>' 


Can any one explain
Posted
Comments
ravikhoda 27-Mar-14 2:35am    
what error did you get ?

1 solution

Hi,you need to bind the drop-down list in the repeater's "Repeater1_ItemDataBound" event.
This is the code for the .aspx:

XML
<asp:Repeater ID="Repeater1" ItemType="WebApplication26.BussinessReg" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
    <ItemTemplate>
        <%# Item.BussinessDetails %><br />
        <asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>
    <hr />
    </ItemTemplate>
</asp:Repeater>



and this is the code-behind:

XML
public partial class WebForm1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if(!Page.IsPostBack)
        {
            Repeater1.DataSource = new List<BussinessReg> {
            new BussinessReg(){BussinessDetails = "company x", ServicesCatSub = new List<string>(){
            "a","b","c","d"
            }},
                            new BussinessReg(){BussinessDetails = "company y", ServicesCatSub = new List<string>(){
            "1","2","3","4"
            }}
            };
            Repeater1.DataBind();
        }
    }

    protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        DropDownList ls = e.Item.FindControl("DropDownList1") as DropDownList;
        BussinessReg di = e.Item.DataItem as BussinessReg;
        ls.DataSource = di.ServicesCatSub;
        ls.DataBind();
    }
}
public class BussinessReg
{
    public string  BussinessDetails { get; set; }
    public List<string> ServicesCatSub { get; set; }
}


PS: I used asp.net 4.5 that's why i didn't use 'Container.DataItem' in the .aspx file.
 
Share this answer
 

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



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900