Nested repeater i ASP.NET 2.0
Jeg har mestret at lave nested repeaters i ASP.NET 1.1. Nu er turen kommet til at prøve ASP.NET 2.0 - men der kan jeg BARE ikke få det til at fungere.Man kan ikke sætte DataSource direkte i min Repeater ala
<asp:Repeater id="list1" runat="server">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Text") %>
<asp:Repeater id="list2" DataSource="<%# DataBinder.Eval(Container.DataItem, "Elementer") %>" runat="server">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "ElementText") %>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
Det virker ellers i ASP.NET 1.1, men i 2.0 giver det en compile-fejl med beskeden "DataSource must be set programatically".
Ok, så sætter jeg bare OnItemDataBound="list1_ItemDataBound" og OnItemDataBound="list2_ItemDataBound" på, og fanger de to events i min codebehind.
void list1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item)
{
Repeater repeater = (Repeater)sender;
ArrayList items = // Her henter jeg de objekter der skal være her.
Repeater list2 = (Repeater)e.Item.FindControl("list2");
list2.DataSource = items;
list2.DataBind();
}
}
void list2_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
// Her kommer jeg aldrig ind
}
Selvom alt ser ud til at lykkes i list1_ItemDataBound hvor jeg finder de rigtige items frem og binder dem til min repeater, så har det ligesom ingen effekt. Debuggeren kommer ind i list1_ItemDataBound men kommer aldrig ind i list2_ItemDataBound.
Resultatet er det samme som man kunne forvente hvis min liste af 'items' ikke indeholdt noget. Men det gør den.
Er der nogen der har et foreslag til hvordan jeg kan få det til at virke?
