Ciao ragazzi,
sto provando a popolare un asp:menu direttamente dalla tabella categorie che ha al suo interno anche la colonna parent per le sottocategorie.
Purtroppo non riesco a venirne a capo.
Ho trovato un codice di esempio ma viene fatto su tabelle collegate tra di loro (Categorie - > Sottocategorie), e provando a modificarne il codice per le mie necessità non sono riuscito a risolvere.
Vi scrivo il codice qui sotto spero possiate aiutarmi.
Mi dà errore sulla relazione dicendo che la colonna padre e la colonna figlio non corrispondono nelle tabelle.
Grazie mille
codice:Private Sub PopulateMenu() Dim ds As DataSet = GetDataSetForMenu() Dim menu As New Menu() For Each parentItem As DataRow In ds.Tables("tab_categorie").Rows Dim categoryItem As New MenuItem(DirectCast(parentItem("nome_categoria"), String)) menu.Items.Add(categoryItem) For Each childItem As DataRow In parentItem.GetChildRows("Figlio") Dim childrenItem As New MenuItem(DirectCast(childItem("nome_categoria"), String)) categoryItem.ChildItems.Add(childrenItem) Next Next PnlCategorie.Controls.Add(menu) PnlCategorie.DataBind() End Sub Private Function GetDataSetForMenu() As DataSet Dim connString As String = WebConfigurationManager.ConnectionStrings("connessione").ToString() Dim myConnection As New SqlConnection(connString) myConnection.Open() Dim adCat As New SqlDataAdapter("SELECT * FROM tab_categorie WHERE parent_categoria = 0", myConnection) Dim adProd As New SqlDataAdapter("SELECT * FROM tab_categorie WHERE parent_categoria <> 0", myConnection) Dim ds As New DataSet() adCat.Fill(ds, "tab_categorie") adProd.Fill(ds, "tab_categorie") ds.Relations.Add("Figlio", ds.Tables("tab_categorie").Columns("ID_categorie"), ds.Tables("tab_categorie").Columns("parent_categoria")) Return ds End Function

Rispondi quotando