I am trying to bind a List<AreaField>
to a repeater. I have converted the list into an array by using the ToArray()
method and now have a array of AreaField[]
Here's my class hierarchy
public class AreaFields { public List<Fields> Fields { set; get; } } public class Fields { public string Name { set; get; } public string Value {set; get; } }
In the aspx, I would like to bind it a repeater (something like this)
DataBinder.Eval(Container.DataItem, "MyAreaFieldName1")
The MyAreaFieldName1 is the value of the Name property in the AreaFieldItem class.
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(); }
It is surprisingly simple...
Code behind:
// Here's your object that you'll create a list of private class Products { public string ProductName { get; set; } public string ProductDescription { get; set; } public string ProductPrice { get; set; } } // Here you pass in the List of Products private 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!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With