Det kunne godt ligne en nestet repeater.
Okay jeg tror, jeg nu har fået styr på det med de to repeatorer.. Men Jeg har lidt svært ved mine to datasourcer..
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT * FROM [Category] WHERE ([parent] = @parent)">
<SelectParameters>
<asp:Parameter DefaultValue="1" Name="parent" Type="Byte" />
</SelectParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT * FROM [Category] WHERE ([parentId] = @parentId)">
<SelectParameters>
<asp:Parameter DefaultValue="1" Name="parentId" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
I DataSource1 har jeg et felt der hedder ID..
I DataSource2 skal jeg så have sådan at den henter der hvor ParentID er = med ID fra DS1..
Men hvordan gør jeg deT??
Der er en glimrende tutorial her:
http://www.asp.net/ (...)Mvh
Fin artikel, dog er jeg i tvivl om hvad jeg skal ændre her:
Dim category As Northwind.CategoriesRow = _
CType(CType(e.Item.DataItem, System.Data.DataRowView).Row, _
Northwind.CategoriesRow)
Jeg bruger jo ikke Northwind.. OG den melder fejl..
Jeps - nu er vi :o)
Hvis du har gjort som i artiklen har du mulighed for at skrive den vise kode mod dine egen tabeller, formentlig noget i stil med:
Dim row As <din database>.wp_catRow = CType(CType(e.Item.DataItem, System.Data.DataRowView).Row, <din database>.wp_catRow)
Mvh
Hvis jeg skriver SqlDataSource.wp_catrow så kommer der fejl.. I det hele taget kan jeg ikke skrive noget efter SqlDataSource..
Det er også navnet på en type i asp.net - næppe navnet på din database.
Men fungerer det hvis du fjerner bemeldte kode?
Mvh
Nej det gør det ikke.. Men navnet på min database, hvor ser jeg det henne?? Filnavnet er Database.mdf, og datasourcen hedder SqlDataSource1, og den har jeg også prøvet med..
Jeg fandt en anden metode..
Hvis man smider en label, på der hvor der skal hentes data fra en anden tabel, og får ID ind i labelen, og så i repeaterens itemdatabound gør sådan at den henter ID fra labelen og så køre en lykke i codebehind.. Det giver det samme.. Men ved ikke om det er mere sløvt??
Det kommer an på hvad du laver derinde og hvad behovene er. Artiklen viste en metode til at hente data fra DB for den indre repeater for hver record i den ydre, samt en metode til at hente alle data en gang for alle de indre repeaters, og blot derpå filtrere dem passende inden visning i den pågældende indre repeater.
Husk lige at kigge på sqldatasourcens DataSourceMode indstillinger: den kan sættes til at levere et dataset (det er default, og er påkrævet hvis man skal lave efterfølgende filtrering i datasettet, lidt som i artiklens metode), eller som DataReader, hvilket er meget mindre krævende.