I'm trying to build a navigation control for Sharepoint using RadMenu. It almost works, in that the menu appears on screen, but the problem I'm having is that the submenus don't open.
I looked at the HTML source and the submenus have been rendered, but the menu control just won't display them when I rollover.
I've attached my code below. Any help would be much appreciated!
<%
@ Control Language="vb" AutoEventWireup="false" CodeBehind="MOSS_InternetTopMenu.ascx.vb" Inherits="MOSS_InternetSideMenu.MOSS_InternetTopMenu" %>
<%
@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %>
<
telerik:RadMenu ID="topMenu" Runat="server">
</
telerik:RadMenu>
Imports
Microsoft.SharePoint
Imports
Microsoft.SharePoint.WebControls
Imports
Microsoft.SharePoint.WebPartPages
Imports
Microsoft.SharePoint.Publishing.Navigation
Imports
PublishingWeb = Microsoft.SharePoint.Publishing.PublishingWeb
Imports
PublishingWebCollection = Microsoft.SharePoint.Publishing.PublishingWebCollection
Imports
SPWebTemplate = Microsoft.SharePoint.SPWebTemplate
Imports
Microsoft.SharePoint.Publishing
Imports
Telerik.Web.UI
Partial
Public Class MOSS_InternetTopMenu
Inherits System.Web.UI.UserControl
Private currentSite As SPSite
Private currentWebRoot As SPWeb
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
currentSite = SPContext.Current.Site
currentWebRoot = SPContext.Current.Site.RootWeb
If HttpContext.Current.User.Identity.IsAuthenticated = False Then
SPSecurity.RunWithElevatedPrivileges(
AddressOf Me.PopulateMenu)
End If
End If
End Sub
Private Sub PopulateMenu()
Try
Dim elevatedSiteColl As SPSite
Dim elevatedWebRoot As SPWeb
elevatedSiteColl =
New SPSite(currentSite.ID)
elevatedWebRoot = elevatedSiteColl.OpenWeb(currentWebRoot.ID)
Dim rootWeb = PublishingWeb.GetPublishingWeb(elevatedWebRoot)
Dim defaultPageUrl As String = rootWeb.DefaultPage.ServerRelativeUrl
Dim smnHome As PortalListItemSiteMapNode = DirectCast(PortalSiteMapProvider.CombinedNavSiteMapProvider.FindSiteMapNode(defaultPageUrl), PortalListItemSiteMapNode)
For Each smnTopLevelItem As SiteMapNode In smnHome.ParentNode.ChildNodes
Dim NewMenuItem As New RadMenuItem
NewMenuItem.Text = smnTopLevelItem.Title
NewMenuItem.NavigateUrl = smnTopLevelItem.Url
topMenu.Items.Add(NewMenuItem)
If smnTopLevelItem.HasChildNodes Then
For Each smnChildItem As SiteMapNode In smnTopLevelItem.ChildNodes
Dim NewChildItem As New RadMenuItem
NewChildItem.Text = smnChildItem.Title
NewChildItem.NavigateUrl = smnChildItem.Url
NewMenuItem.Items.Add(NewChildItem)
Next
End If
Next
Catch ex As Exception
End Try
End Sub
End
Class