Binding a generic list to a repeater - ASP.NET
It is surprisingly simple...
Code behind:
// Here's your object that you'll create a list ofprivate class Products{ public string ProductName { get; set; } public string ProductDescription { get; set; } public string ProductPrice { get; set; }}// Here you pass in the List of Productsprivate void BindItemsInCart(List<Products> ListOfSelectedProducts){ // The the LIST as the DataSource this.rptItemsInCart.DataSource = ListOfSelectedProducts; // Then bind the repeater // The public properties become the columns of your repeater this.rptItemsInCart.DataBind();}
ASPX code:
<asp:Repeater ID="rptItemsInCart" runat="server"> <HeaderTemplate> <table> <thead> <tr> <th>Product Name</th> <th>Product Description</th> <th>Product Price</th> </tr> </thead> <tbody> </HeaderTemplate> <ItemTemplate> <tr> <td><%# Eval("ProductName") %></td> <td><%# Eval("ProductDescription")%></td> <td><%# Eval("ProductPrice")%></td> </tr> </ItemTemplate> <FooterTemplate> </tbody> </table> </FooterTemplate></asp:Repeater>
I hope this helps!
You may want to create a subRepeater.
<asp:Repeater ID="SubRepeater" runat="server" DataSource='<%# Eval("Fields") %>'> <ItemTemplate> <span><%# Eval("Name") %></span> </ItemTemplate></asp:Repeater>
You can also cast your fields
<%# ((ArrayFields)Container.DataItem).Fields[0].Name %>
Finally you could do a little CSV Function and write out your fields with a function
<%# GetAsCsv(((ArrayFields)Container.DataItem).Fields) %>public string GetAsCsv(IEnumerable<Fields> fields){ var builder = new StringBuilder(); foreach(var f in fields) { builder.Append(f); builder.Append(","); } builder.Remove(builder.Length - 1); return builder.ToString();}
Code Behind:
public class Friends{ public string ID { get; set; } public string Name { get; set; } public string Image { get; set; }}protected void Page_Load(object sender, EventArgs e){ List <Friends> friendsList = new List<Friends>(); foreach (var friend in friendz) { friendsList.Add( new Friends { ID = friend.id, Name = friend.name } ); } this.rptFriends.DataSource = friendsList; this.rptFriends.DataBind();}
.aspx Page
<asp:Repeater ID="rptFriends" runat="server"> <HeaderTemplate> <table border="0" cellpadding="0" cellspacing="0"> <thead> <tr> <th>ID</th> <th>Name</th> </tr> </thead> <tbody> </HeaderTemplate> <ItemTemplate> <tr> <td><%# Eval("ID") %></td> <td><%# Eval("Name") %></td> </tr> </ItemTemplate> <FooterTemplate> </tbody> </table> </FooterTemplate> </asp:Repeater>