Avatar billede nielsbrinch Nybegynder
27. april 2005 - 19:58 Der er 1 kommentar og
1 løsning

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?
Avatar billede nielsbrinch Nybegynder
25. maj 2005 - 10:54 #1
Det ærgrer mig at inden kender svaret.

Jeg har løst det med en kombination af UserControls og Placeholders for på den måde at skabe min egen Repeater-lignende funktion.
Avatar billede nielsbrinch Nybegynder
25. maj 2005 - 10:54 #2
og så lukker jeg spørgsmålet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester