1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
Private Function buildXMLMenu(ByRef oDataSet As DataSet) As String
'Dim parentNode As TreeNode
' Dim childNode As TreeNode
Dim sortSubMenu As String
sortSubMenu = "LevelOrder ASC"
Dim selectSubMenu As String
Dim navigateString As StringBuilder = New StringBuilder()
' En-tete du fichier Site Map File
navigateString.Append("<?xml version=""1.0"" encoding=""utf-8"" ?>")
navigateString.Append("<siteMap xmlns=""http://schemas.microsoft.com/AspNet/SiteMap-File-1.0"">")
For Each parentRows As DataRow In oDataSet.Tables("Menu").Select("MenuLevel = 0", sortSubMenu)
selectSubMenu = "UpperLevel = " & parentRows.Item("ID").ToString
' création du sous-menu si existant
If oDataSet.Tables("Menu").Select(selectSubMenu, sortSubMenu).Length > 0 Then
' menu parent avec menu enfant
navigateString.Append("<siteMapNode title=""" & parentRows.Item("libla") & """>")
For Each childRows As DataRow In oDataSet.Tables("Menu").Select(selectSubMenu, sortSubMenu)
navigateString.Append("<siteMapNode url=""" & childRows.Item("MenuAction") & """ title=""" & childRows.Item("libla") & """ />")
Next
navigateString.Append("</siteMapNode>")
Else
' Menu parent sans menu enfant
navigateString.Append("<siteMapNode url=""" & parentRows.Item("MenuAction") & """ title=""" & parentRows.Item("libla") & """ />")
End If
Next
navigateString.Append("</siteMap>")
buildXMLMenu = navigateString.ToString
End Function |
Partager