Na stránku si vložte komponentu TreeView a pojmenujte jí tvwSekce.
Do zdrojového kódu třídy stránky přidejte tento kód.
Public Sub FillTreeMenu()
tvwSekce.Clear()
Dim sqlQuery As New SqlCommand("SELECT SekceID,SekceNazev,SekceParentID FROM ArtSekce where SekceParentID=0 and SekceID<>0")
Dim ResultSet As DataSet
ResultSet = RunQuery(sqlQuery)
If ResultSet.Tables.Count > 0 Then
Dim row As DataRow
For Each row In ResultSet.Tables(0).Rows
Dim xNod As New TreeNode(row("SekceNazev").ToString & " (" & row("SekceID").ToString & ")", "K" & row("SekceID").ToString)
xNod.NavigateUrl = "ArtSekceManage.aspx?id=" & row("SekceID").ToString
tvwSekce.Nodes.Add(xNod)
NactiPotomky(row("SekceID").ToString, xNod)
Next
End If
End Sub
Sub NactiPotomky(ByVal ParentID As String, ByRef xRodic As TreeNode)
Dim sqlQuery As New SqlCommand("SELECT SekceID,SekceNazev,SekceParentID FROM ArtSekce where SekceParentID=" & ParentID)
Dim ResultSet As DataSet
Dim idNodu As String = ""
ResultSet = RunQuery(sqlQuery)
If ResultSet.Tables.Count > 0 Then
Dim row As DataRow
For Each row In ResultSet.Tables(0).Rows
idNodu = "K" & row("SekceID").ToString
Dim xNod As New _
TreeNode(row("SekceNazev").ToString & " (" & row("SekceID").ToString & ")", idNodu)
xNod.NavigateUrl = "ArtSekceManage.aspx?id=" & row("SekceID").ToString
xRodic.ChildNodes.Add(xNod)
NactiPotomky(row("SekceID").ToString, xNod)
Next
End If
End Sub
Function RunQuery(ByVal sqlQuery As SqlCommand) As DataSet
Dim connectionString As String = _ ConfigurationManager.ConnectionStrings("DefaultConnection").ConnectionString
Dim dbConnection As New SqlConnection(connectionString)
Dim dbAdapter As New SqlDataAdapter
dbAdapter.SelectCommand = sqlQuery
sqlQuery.Connection = dbConnection
Dim resultsDataSet As DataSet = New DataSet
Try
dbAdapter.Fill(resultsDataSet)
Catch ex As Exception
End Try
Return resultsDataSet
End Function
V události Load pak pokud není PostBack volejte FillTreeMenu.
Předpokládá se automaticky:
Import System.Data a System.Data.SQLClient.
Tabulka SQL ve formátu SekceID, SekceNazev, SekceParentID
Konfigurace ve web.config datového připojení DefaultConnection.
Samozřejmě pokud to máte jinak musíte si kód upravit.
Zkoušeno na verzi frameworku 4.5.1