Torna al Thread
#Region "BuildSiteMap"
<MethodImpl(MethodImplOptions.Synchronized)> _
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", "~/categorie.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(), Me.rootNode.Url & "?id=" & row("ID_categorie").ToString(), row("nome_categoria").ToString(), row("nome_categoria").ToString())
AddNode(childNode, Me.rootNode)
AddChildTreeViewNodes(treeViewData, childNode, row("ID_categorie"))
Next
Catch ex As Exception
Throw New Exception(ex.Message, ex)
End Try
Return Me.rootNode
End Function
#End Region
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(), Me.rootNode.Url & "?id=" & row("ID_categorie").ToString(), row("nome_categoria").ToString(), row("nome_categoria").ToString())
parentTreeViewNode.ChildNodes.Add(childNode2)
AddChildTreeViewNodes(treeViewData, childNode2, row("ID_categorie"))
Next
Catch ex As Exception
Throw New Exception(ex.Message, ex)
End Try
End Sub