Torna al Thread
Public Overrides Function BuildSiteMap() As SiteMapNode
'Pulisco tutti i nodi della collezione (se ce ne sono)
Clear()
'Esco dal metodo se il nodo root non è nullo
If Me.rootNode IsNot Nothing Then
Return Me.rootNode
End If
'Creo il root node
Me.rootNode = New SiteMapNode(Me, "0", "~/default.aspx", "HomePage", "HomePage")
AddNode(Me.rootNode, Nothing)
Dim treeViewData As DataTable
' Get Menu table
Dim selectCommand As String = "SELECT ID_categorie, parent_categoria, nome_categoria FROM tab_categorie"
Dim conString As String = ConfigurationManager.ConnectionStrings("connessione").ConnectionString
Dim dad As New SqlDataAdapter(selectCommand, conString)
Dim dtblDiscuss As New DataTable()
dad.Fill(dtblDiscuss)
treeViewData = dtblDiscuss
Try
Dim view As New DataView(treeViewData)
view.RowFilter = "[parent_categoria] = 0"
For Each row As DataRowView In view
Dim childNode As New SiteMapNode(Me, row("ID_categorie").ToString(), "/" + ElencoVariabili.Categorie + "/" & LCase(ElencoFunzioni.CReplaceNome(row("nome_categoria"))) & "-" & row("ID_categorie") & ".aspx", row("nome_categoria").ToString(), row("nome_categoria").ToString())
AddNode(childNode, Me.rootNode)
Dim treeViewData2 As DataTable
' Get Menu table
Dim selectCommand2 As String = "SELECT *FROM tab_prodotti"
Dim dad2 As New SqlDataAdapter(selectCommand2, conString)
Dim dtblDiscuss2 As New DataTable()
dad2.Fill(dtblDiscuss2)
treeViewData2 = dtblDiscuss2
Dim view2 As New DataView(treeViewData2)
view2.RowFilter = "[id_tree] = " & row("ID_categorie")
For Each row2 As DataRowView In view2
Dim childNodeProdotto As New SiteMapNode(Me, "P" & row2("ID_prodotti").ToString(), "/" + ElencoVariabili.Prodotti + "/" & LCase(ElencoFunzioni.CReplaceNome(row2("nome_prodotto"))) & "-" & row2("ID_prodotti") & ".aspx", row2("nome_prodotto").ToString(), row2("nome_prodotto").ToString())
AddNode(childNodeProdotto, childNode)
Next
AddChildTreeViewNodes(treeViewData, childNode, row("ID_categorie"))
Next
Catch ex As Exception
Throw New Exception(ex.Message, ex)
End Try
Return Me.rootNode
End Function
Private Sub AddChildTreeViewNodes(treeViewData As DataTable, parentTreeViewNode As SiteMapNode, IDPadre As Integer)
Try
Dim view As New DataView(treeViewData)
view.RowFilter = "[parent_categoria]=" & IDPadre
For Each row As DataRowView In view
Dim childNode2 As New SiteMapNode(Me, row("ID_categorie").ToString(), "/" + ElencoVariabili.Categorie + "/" & LCase(ElencoFunzioni.CReplaceNome(row("nome_categoria"))) & "-" & row("ID_categorie") & ".aspx", row("nome_categoria").ToString(), row("nome_categoria").ToString())
AddNode(childNode2, parentTreeViewNode)
Dim treeViewData3 As DataTable
' Get Menu table
Dim selectCommand3 As String = "SELECT *FROM tab_prodotti"
Dim conString As String = ConfigurationManager.ConnectionStrings("connessione").ConnectionString
Dim dad3 As New SqlDataAdapter(selectCommand3, conString)
Dim dtblDiscuss3 As New DataTable()
dad3.Fill(dtblDiscuss3)
treeViewData3 = dtblDiscuss3
Dim view3 As New DataView(treeViewData3)
view3.RowFilter = "[id_tree] = " & row("ID_categorie")
For Each row2 As DataRowView In view3
Dim childNodeProdotto2 As New SiteMapNode(Me, "P" & row2("ID_prodotti").ToString(), "/" + ElencoVariabili.Prodotti + "/" & LCase(ElencoFunzioni.CReplaceNome(row2("nome_prodotto"))) & "-" & row2("ID_prodotti") & ".aspx", row2("nome_prodotto").ToString(), row2("nome_prodotto").ToString())
AddNode(childNodeProdotto2, childNode2)
Next
AddChildTreeViewNodes(treeViewData, childNode2, row("ID_categorie"))
Next
Catch ex As Exception
Throw New Exception(ex.Message, ex)
End Try
End Sub