Ejemplo n.º 1
0
        private void RenderTreeView()
        {
            #if NET35
            if (WebConfigSettings.DisablePageViewStateByDefault) {Page.EnableViewState = true; }
            #endif
            //menu1.Visible = false;

            mojoTreeView treeMenu1;

            if (useArtisteer)
            {
                treeMenu1 = new ArtisteerTreeView();
                treeMenu1.EnableViewState = false;
                treeMenu1.ShowExpandCollapse = false;
            }
            else
            {
                treeMenu1 = new mojoTreeView();

                treeMenu1.UseDataRole = useDataRole;
                treeMenu1.SuppressImages = suppressImages;

                if (treeViewShowExpandCollapse)
                {
                    treeMenu1.EnableViewState = true;
                    treeMenu1.ShowExpandCollapse = true;
                    treeMenu1.TreeNodeExpanded += new TreeNodeEventHandler(treeMenu1_TreeNodeExpanded);
                }
                else
                {
                    treeMenu1.ShowExpandCollapse = false;
            #if !NET35
            //http://www.4guysfromrolla.com/articles/071410-1.aspx
            //optimize viewstate for .NET 4
               this.ViewStateMode = ViewStateMode.Disabled;
               treeMenu1.ViewStateMode = ViewStateMode.Disabled;
            #endif
                }
            }

            treeMenu1.EnableTheming = true;
            treeMenu1.SkinID = menuSkinID;

            treeMenu1.UseMenuTooltipForCustomCss = useMenuTooltipForCustomCss;

            this.menuPlaceHolder.Controls.Add(treeMenu1);

            #if !MONO
            treeMenu1.PopulateNodesFromClient = treeViewPopulateOnDemand;
            #endif
            treeMenu1.CollapseImageToolTip = Resource.TreeMenuCollapseTooltip;
            treeMenu1.ExpandImageToolTip = Resource.TreeMenuExpandTooltip;

            treeMenu1.ExpandDepth = 0;

            //treeMenu1.TreeNodePopulate += new TreeNodeEventHandler(treeMenu1_TreeNodePopulate);
            treeMenu1.TreeNodeDataBound += new TreeNodeEventHandler(treeMenu1_TreeNodeDataBound);

            //older skins have this
            StyleSheet stylesheet = (StyleSheet)Page.Master.FindControl("StyleSheet");
            if (stylesheet != null)
            {
                if (stylesheet.FindControl("treeviewcss") == null)
                {
                    Literal cssLink = new Literal();
                    cssLink.ID = "treeviewcss";
                    cssLink.Text = "\n<link href='"
                    + SiteUtils.GetSkinBaseUrl(Page)
                    + "styletreeview.css' type='text/css' rel='stylesheet' media='screen' />";

                    stylesheet.Controls.Add(cssLink);
                    log.Debug("added stylesheet for treeiew");
                }
            }

            treeMenu1.ExpandDepth = treeViewExpandDepth;
            //log.Debug("set ExpandDepth to " + treeViewExpandDepth.ToString(CultureInfo.InvariantCulture));

            if (Page.IsPostBack)
            {
                // return if menu already bound
                if(treeMenu1.Nodes.Count > 0) return;
            }
            treeMenu1.PathSeparator = '|';
            treeMenu1.DataSourceID = this.siteMapDataSource.ID;
            try
            {
                treeMenu1.DataBind();
            }
            catch (ArgumentException ex)
            {
                log.Error(ex);
            }

            if (
                (treeMenu1.SelectedNode != null)
                &&(!suppressPageSelection)
                )
            {
                mojoTreeView.ExpandToValuePath(treeMenu1, treeMenu1.SelectedNode.ValuePath);
                log.Debug("called mojoTreeview.ExpandToValuePath for selectednode value path: " + treeMenu1.SelectedNode.ValuePath);
            }
            else
            {
                bool didSelect = false;

                if (!suppressPageSelection)
                {
                    String valuePath = SiteUtils.GetActivePageValuePath(siteMapDataSource.Provider.RootNode, startingNodeOffset, Request.RawUrl);
                    mojoTreeView.ExpandToValuePath(treeMenu1, valuePath);
                    log.Debug("called mojoTreeview.ExpandToValuePath for value path: " + valuePath);

                    TreeNode nodeToSelect = treeMenu1.FindNode(valuePath);
                    if (nodeToSelect != null)
                    {
                        try
                        {
                            nodeToSelect.Selected = true;
                            didSelect = true;
                            log.Debug("selected node " + nodeToSelect.Text);
                        }
                        catch (InvalidOperationException)
                        {
                            //can happen if node disabled or unselectable
                        }
                    }

                    if (!didSelect)
                    {
                        valuePath = SiteUtils.GetActivePageValuePath(siteMapDataSource.Provider.RootNode, startingNodeOffset);
                        mojoTreeView.ExpandToValuePath(treeMenu1, valuePath);
                        log.Debug("called mojoTreeview.ExpandToValuePath for value path: " + valuePath);

                        if (valuePath.Length > 0)
                        {
                            nodeToSelect = treeMenu1.FindNode(valuePath);
                            if (nodeToSelect != null)
                            {
                                try
                                {
                                    nodeToSelect.Selected = true;
                                    didSelect = true;
                                    log.Debug("selected node " + nodeToSelect.Text);
                                }
                                catch (InvalidOperationException)
                                {
                                    //can happen if node disabled or unselectable
                                }
                            }

                        }

                    }

                    if (!didSelect)
                    {
                        if ((currentPage != null)&&(currentPage.Url.Length > 0))
                        {
                            string u = currentPage.Url.Replace("~/", "/");
                            valuePath = SiteUtils.GetActivePageValuePath(siteMapDataSource.Provider.RootNode, startingNodeOffset, u);
                            mojoTreeView.ExpandToValuePath(treeMenu1, valuePath);

                            nodeToSelect = treeMenu1.FindNode(valuePath);
                            if (nodeToSelect != null)
                            {
                                try
                                {
                                    nodeToSelect.Selected = true;
                                    didSelect = true;
                                    log.Debug("selected node " + nodeToSelect.Text);
                                }
                                catch (InvalidOperationException)
                                {
                                    //can happen if node disabled or unselectable
                                }
                            }
                        }

                    }

                    if (!didSelect)
                    {
                        valuePath = SiteUtils.GetActivePageValuePath(siteMapDataSource.Provider.RootNode, startingNodeOffset);

                        if(valuePath.IndexOf(treeMenu1.PathSeparator) > -1)
                        {
                            valuePath = valuePath.Substring(0, (valuePath.IndexOf(treeMenu1.PathSeparator)));
                            nodeToSelect = treeMenu1.FindNode(valuePath);

                            if (nodeToSelect != null)
                            {
                                try
                                {
                                    nodeToSelect.Selected = true;
                                    didSelect = true;
                                    log.Debug("selected node " + nodeToSelect.Text);
                                }
                                catch (InvalidOperationException)
                                {
                                    //can happen if node disabled or unselectable
                                }
                            }
                        }
                    }

                }
            }
        }
Ejemplo n.º 2
0
        private void RenderTreeView()
        {
#if NET35
            if (WebConfigSettings.DisablePageViewStateByDefault)
            {
                Page.EnableViewState = true;
            }
#endif

            if (currentPage == null)
            {
                currentPage = CacheHelper.GetCurrentPage();
            }

            mojoTreeView treeMenu1;

            if (useArtisteer)
            {
                treeMenu1 = new ArtisteerTreeView();
            }
            else
            {
                treeMenu1 = new mojoTreeView();
            }

            treeMenu1.EnableTheming = true;
            treeMenu1.SkinID        = menuSkinID;



            treeMenu1.ShowExpandCollapse         = treeViewShowExpandCollapse;
            treeMenu1.UseMenuTooltipForCustomCss = useMenuTooltipForCustomCss;

            if (treeViewShowExpandCollapse)
            {
                treeMenu1.ShowExpandCollapse = true;
                treeMenu1.EnableViewState    = true;
                treeMenu1.TreeNodeExpanded  += new TreeNodeEventHandler(treeMenu1_TreeNodeExpanded);
                //this.EnableViewState = false;
            }
            else
            {
                treeMenu1.ShowExpandCollapse = false;
                treeMenu1.EnableViewState    = false;
                this.EnableViewState         = false;
            }


            treeMenu1.PopulateNodesFromClient = treeViewPopulateOnDemand;

            treeMenu1.ExpandDepth = treeViewExpandDepth;

            treeMenu1.TreeNodeDataBound += new TreeNodeEventHandler(treeMenu1_TreeNodeDataBound);

            treeMenu1.CollapseImageToolTip = Resource.TreeMenuCollapseTooltip;
            treeMenu1.ExpandImageToolTip   = Resource.TreeMenuExpandTooltip;

            this.menuPlaceHolder.Controls.Add(treeMenu1);

            if (isSubMenu)
            {
                if (
                    (currentPage != null) &&
                    (currentPage.ParentId == -1)
                    )
                {
                    if (
                        (currentPage.UseUrl) &&
                        (currentPage.Url.Length > 0) &&
                        (WebConfigSettings.UseUrlReWriting)
                        )
                    {
                        pageMapDataSource.StartingNodeUrl = currentPage.Url;
                    }
                    else
                    {
                        pageMapDataSource.StartingNodeUrl = "~/Default.aspx?pageid=" + currentPage.PageId.ToInvariantString();
                    }
                }
                else
                {
                    pageMapDataSource.StartingNodeUrl = SiteUtils.GetStartUrlForPageMenu(pageMapDataSource.Provider.RootNode, startingNodeOffset);
                }
            }

            if (startingNodeUrl.Length > 0)
            {
                pageMapDataSource.StartingNodeUrl = startingNodeUrl;
            }

            if (Page.IsPostBack)
            {
                // return if menu already bound
                if (treeMenu1.Nodes.Count > 0)
                {
                    return;
                }
            }


            if (startingNodeOffset > (currentPageDepth + 1))
            {
                this.Visible = false;
                return;
            }

            treeMenu1.PathSeparator = '|';
            treeMenu1.DataSourceID  = pageMapDataSource.ID;
            try
            {
                treeMenu1.DataBind();
            }
            catch (ArgumentException ex)
            {
                log.Error(ex);
            }



            if (treeMenu1.SelectedNode != null)
            {
                mojoTreeView.ExpandToValuePath(treeMenu1, treeMenu1.SelectedNode.ValuePath);
            }
            else
            {
                //bool didSelect = false;
                String valuePath = string.Empty;
                if (isSubMenu)
                {
                    valuePath = SiteUtils.GetPageMenuActivePageValuePath(pageMapDataSource.Provider.RootNode);
                    if (startingNodeOffset > 0)
                    {
                        for (int i = 1; i <= startingNodeOffset; i++)
                        {
                            if (valuePath.IndexOf("|") > -1)
                            {
                                valuePath = valuePath.Remove(0, valuePath.IndexOf("|") + 1);
                            }
                        }
                    }
                }
                else
                {
                    valuePath = SiteUtils.GetActivePageValuePath(pageMapDataSource.Provider.RootNode, startingNodeOffset, Request.RawUrl);
                }

                mojoTreeView.ExpandToValuePath(treeMenu1, valuePath);

                TreeNode nodeToSelect = treeMenu1.FindNode(valuePath);
                if (nodeToSelect == null)
                {
                    nodeToSelect = treeMenu1.FindNode(currentPage.PageName);
                }

                if (nodeToSelect != null)
                {
                    try
                    {
                        nodeToSelect.Selected = true;
                        //didSelect = true;
                    }
                    catch (InvalidOperationException)
                    {
                        //can happen if node disabled or unselectable
                    }
                }
            }

            if (treeMenu1.Nodes.Count == 0)
            {
                this.Visible = false;
            }
        }
Ejemplo n.º 3
0
        private void RenderTreeView()
        {
            #if NET35
            if (WebConfigSettings.DisablePageViewStateByDefault) { Page.EnableViewState = true; }
            #endif

            if (currentPage == null) { currentPage = CacheHelper.GetCurrentPage(); }

            mojoTreeView treeMenu1;

            if (useArtisteer)
            {
                treeMenu1 = new ArtisteerTreeView();
            }
            else
            {
                treeMenu1 = new mojoTreeView();
            }

            treeMenu1.EnableTheming = true;
            treeMenu1.SkinID = menuSkinID;

            treeMenu1.ShowExpandCollapse = treeViewShowExpandCollapse;
            treeMenu1.UseMenuTooltipForCustomCss = useMenuTooltipForCustomCss;

            if (treeViewShowExpandCollapse)
            {
                treeMenu1.ShowExpandCollapse = true;
                treeMenu1.EnableViewState = true;
                treeMenu1.TreeNodeExpanded += new TreeNodeEventHandler(treeMenu1_TreeNodeExpanded);
                //this.EnableViewState = false;
            }
            else
            {
                treeMenu1.ShowExpandCollapse = false;
                treeMenu1.EnableViewState = false;
                this.EnableViewState = false;
            }

            treeMenu1.PopulateNodesFromClient = treeViewPopulateOnDemand;

            treeMenu1.ExpandDepth = treeViewExpandDepth;

            treeMenu1.TreeNodeDataBound += new TreeNodeEventHandler(treeMenu1_TreeNodeDataBound);

            treeMenu1.CollapseImageToolTip = Resource.TreeMenuCollapseTooltip;
            treeMenu1.ExpandImageToolTip = Resource.TreeMenuExpandTooltip;

            this.menuPlaceHolder.Controls.Add(treeMenu1);

            if (isSubMenu)
            {
                if (
                    (currentPage != null)
                    && (currentPage.ParentId == -1)
                    )
                {
                    if (
                        (currentPage.UseUrl)
                        && (currentPage.Url.Length > 0)
                        &&(WebConfigSettings.UseUrlReWriting)
                        )
                    {
                        pageMapDataSource.StartingNodeUrl = currentPage.Url;
                    }
                    else
                    {
                        pageMapDataSource.StartingNodeUrl = "~/Default.aspx?pageid=" + currentPage.PageId.ToInvariantString();
                    }

                }
                else
                {
                    pageMapDataSource.StartingNodeUrl = SiteUtils.GetStartUrlForPageMenu(pageMapDataSource.Provider.RootNode, startingNodeOffset);
                }
            }

            if (startingNodeUrl.Length > 0)
            {
                pageMapDataSource.StartingNodeUrl = startingNodeUrl;

            }

            if (Page.IsPostBack)
            {
                // return if menu already bound
                if (treeMenu1.Nodes.Count > 0) return;
            }

            if (startingNodeOffset > (currentPageDepth + 1))
            {
                this.Visible = false;
                return;
            }

            treeMenu1.PathSeparator = '|';
            treeMenu1.DataSourceID = pageMapDataSource.ID;
            try
            {
                treeMenu1.DataBind();
            }
            catch (ArgumentException ex)
            {
                log.Error(ex);
            }

            if (treeMenu1.SelectedNode != null)
            {
                mojoTreeView.ExpandToValuePath(treeMenu1, treeMenu1.SelectedNode.ValuePath);
            }
            else
            {

                //bool didSelect = false;
                String valuePath = string.Empty;
                if (isSubMenu)
                {
                    valuePath = SiteUtils.GetPageMenuActivePageValuePath(pageMapDataSource.Provider.RootNode);
                    if (startingNodeOffset > 0)
                    {
                        for (int i = 1; i <= startingNodeOffset; i++)
                        {
                            if (valuePath.IndexOf("|") > -1)
                            {
                                valuePath = valuePath.Remove(0, valuePath.IndexOf("|") + 1);
                            }

                        }
                    }
                }
                else
                {
                    valuePath = SiteUtils.GetActivePageValuePath(pageMapDataSource.Provider.RootNode, startingNodeOffset, Request.RawUrl);
                }

                mojoTreeView.ExpandToValuePath(treeMenu1, valuePath);

                TreeNode nodeToSelect = treeMenu1.FindNode(valuePath);
                if (nodeToSelect == null)
                {
                    nodeToSelect = treeMenu1.FindNode(currentPage.PageName);
                }

                if (nodeToSelect != null)
                {
                    try
                    {
                        nodeToSelect.Selected = true;
                        //didSelect = true;
                    }
                    catch (InvalidOperationException)
                    {
                        //can happen if node disabled or unselectable
                    }
                }

            }

            if (treeMenu1.Nodes.Count == 0) this.Visible = false;
        }
Ejemplo n.º 4
0
        private void RenderTreeView()
        {
#if NET35
            if (WebConfigSettings.DisablePageViewStateByDefault)
            {
                Page.EnableViewState = true;
            }
#endif
            //menu1.Visible = false;

            mojoTreeView treeMenu1;


            if (useArtisteer)
            {
                treeMenu1 = new ArtisteerTreeView();
                treeMenu1.EnableViewState    = false;
                treeMenu1.ShowExpandCollapse = false;
            }
            else
            {
                treeMenu1 = new mojoTreeView();

                treeMenu1.UseDataRole    = useDataRole;
                treeMenu1.SuppressImages = suppressImages;

                if (treeViewShowExpandCollapse)
                {
                    treeMenu1.EnableViewState    = true;
                    treeMenu1.ShowExpandCollapse = true;
                    treeMenu1.TreeNodeExpanded  += new TreeNodeEventHandler(treeMenu1_TreeNodeExpanded);
                }
                else
                {
                    treeMenu1.ShowExpandCollapse = false;
#if !NET35
                    //http://www.4guysfromrolla.com/articles/071410-1.aspx
                    //optimize viewstate for .NET 4
                    this.ViewStateMode      = ViewStateMode.Disabled;
                    treeMenu1.ViewStateMode = ViewStateMode.Disabled;
#endif
                }
            }

            treeMenu1.EnableTheming = true;
            treeMenu1.SkinID        = menuSkinID;

            treeMenu1.UseMenuTooltipForCustomCss = useMenuTooltipForCustomCss;

            this.menuPlaceHolder.Controls.Add(treeMenu1);


#if !MONO
            treeMenu1.PopulateNodesFromClient = treeViewPopulateOnDemand;
#endif
            treeMenu1.CollapseImageToolTip = Resource.TreeMenuCollapseTooltip;
            treeMenu1.ExpandImageToolTip   = Resource.TreeMenuExpandTooltip;

            treeMenu1.ExpandDepth = 0;


            //treeMenu1.TreeNodePopulate += new TreeNodeEventHandler(treeMenu1_TreeNodePopulate);
            treeMenu1.TreeNodeDataBound += new TreeNodeEventHandler(treeMenu1_TreeNodeDataBound);



            //older skins have this
            StyleSheet stylesheet = (StyleSheet)Page.Master.FindControl("StyleSheet");
            if (stylesheet != null)
            {
                if (stylesheet.FindControl("treeviewcss") == null)
                {
                    Literal cssLink = new Literal();
                    cssLink.ID   = "treeviewcss";
                    cssLink.Text = "\n<link href='"
                                   + SiteUtils.GetSkinBaseUrl(Page)
                                   + "styletreeview.css' type='text/css' rel='stylesheet' media='screen' />";

                    stylesheet.Controls.Add(cssLink);
                    log.Debug("added stylesheet for treeiew");
                }
            }


            treeMenu1.ExpandDepth = treeViewExpandDepth;
            //log.Debug("set ExpandDepth to " + treeViewExpandDepth.ToString(CultureInfo.InvariantCulture));



            if (Page.IsPostBack)
            {
                // return if menu already bound
                if (treeMenu1.Nodes.Count > 0)
                {
                    return;
                }
            }
            treeMenu1.PathSeparator = '|';
            treeMenu1.DataSourceID  = this.siteMapDataSource.ID;
            try
            {
                treeMenu1.DataBind();
            }
            catch (ArgumentException ex)
            {
                log.Error(ex);
            }

            if (
                (treeMenu1.SelectedNode != null) &&
                (!suppressPageSelection)
                )
            {
                mojoTreeView.ExpandToValuePath(treeMenu1, treeMenu1.SelectedNode.ValuePath);
                log.Debug("called mojoTreeview.ExpandToValuePath for selectednode value path: " + treeMenu1.SelectedNode.ValuePath);
            }
            else
            {
                bool didSelect = false;

                if (!suppressPageSelection)
                {
                    String valuePath = SiteUtils.GetActivePageValuePath(siteMapDataSource.Provider.RootNode, startingNodeOffset, Request.RawUrl);
                    mojoTreeView.ExpandToValuePath(treeMenu1, valuePath);
                    log.Debug("called mojoTreeview.ExpandToValuePath for value path: " + valuePath);


                    TreeNode nodeToSelect = treeMenu1.FindNode(valuePath);
                    if (nodeToSelect != null)
                    {
                        try
                        {
                            nodeToSelect.Selected = true;
                            didSelect             = true;
                            log.Debug("selected node " + nodeToSelect.Text);
                        }
                        catch (InvalidOperationException)
                        {
                            //can happen if node disabled or unselectable
                        }
                    }

                    if (!didSelect)
                    {
                        valuePath = SiteUtils.GetActivePageValuePath(siteMapDataSource.Provider.RootNode, startingNodeOffset);
                        mojoTreeView.ExpandToValuePath(treeMenu1, valuePath);
                        log.Debug("called mojoTreeview.ExpandToValuePath for value path: " + valuePath);

                        if (valuePath.Length > 0)
                        {
                            nodeToSelect = treeMenu1.FindNode(valuePath);
                            if (nodeToSelect != null)
                            {
                                try
                                {
                                    nodeToSelect.Selected = true;
                                    didSelect             = true;
                                    log.Debug("selected node " + nodeToSelect.Text);
                                }
                                catch (InvalidOperationException)
                                {
                                    //can happen if node disabled or unselectable
                                }
                            }
                        }
                    }

                    if (!didSelect)
                    {
                        if ((currentPage != null) && (currentPage.Url.Length > 0))
                        {
                            string u = currentPage.Url.Replace("~/", "/");
                            valuePath = SiteUtils.GetActivePageValuePath(siteMapDataSource.Provider.RootNode, startingNodeOffset, u);
                            mojoTreeView.ExpandToValuePath(treeMenu1, valuePath);

                            nodeToSelect = treeMenu1.FindNode(valuePath);
                            if (nodeToSelect != null)
                            {
                                try
                                {
                                    nodeToSelect.Selected = true;
                                    didSelect             = true;
                                    log.Debug("selected node " + nodeToSelect.Text);
                                }
                                catch (InvalidOperationException)
                                {
                                    //can happen if node disabled or unselectable
                                }
                            }
                        }
                    }

                    if (!didSelect)
                    {
                        valuePath = SiteUtils.GetActivePageValuePath(siteMapDataSource.Provider.RootNode, startingNodeOffset);

                        if (valuePath.IndexOf(treeMenu1.PathSeparator) > -1)
                        {
                            valuePath    = valuePath.Substring(0, (valuePath.IndexOf(treeMenu1.PathSeparator)));
                            nodeToSelect = treeMenu1.FindNode(valuePath);

                            if (nodeToSelect != null)
                            {
                                try
                                {
                                    nodeToSelect.Selected = true;
                                    didSelect             = true;
                                    log.Debug("selected node " + nodeToSelect.Text);
                                }
                                catch (InvalidOperationException)
                                {
                                    //can happen if node disabled or unselectable
                                }
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 5
0
        //#region OnInit
        //    protected override void OnInit(EventArgs e)
        //    {
        //        base.OnInit(e);
        //        this.Load += new EventHandler(Page_Load);
        //    }

        //#endregion

        protected void Page_Load(object sender, EventArgs e)
        {
            startingPageId   = WebUtils.ParseInt32FromHashtable(Settings, "CustomMenuStartingPage", startingPageId);
            useTreeView      = WebUtils.ParseBoolFromHashtable(Settings, "CustomMenuUseTreeView", useTreeView);
            maxDepth         = WebUtils.ParseInt32FromHashtable(Settings, "CustomMenuMaxDepth", maxDepth);
            showStartingNode = WebUtils.ParseBoolFromHashtable(Settings, "CustomMenuShowStartingNode", showStartingNode);

            if (Settings.Contains("CustomMenuView"))
            {
                if (Settings["CustomMenuView"].ToString() != string.Empty)
                {
                    viewName = Settings["CustomMenuView"].ToString();
                }
            }

            PageSettings      pageSettings   = new PageSettings(siteSettings.SiteId, startingPageId);
            SiteMapDataSource menuDataSource = new SiteMapDataSource();

            menuDataSource.SiteMapProvider = "mojosite" + siteSettings.SiteId.ToInvariantString();
            var model = new mojoPortal.Web.Models.CustomMenu
            {
                MenuData         = menuDataSource,
                StartingPage     = pageSettings,
                CurrentPage      = currentPage,
                UseTreeView      = useTreeView,
                ShowStartingNode = showStartingNode,
                MaxDepth         = maxDepth
            };

            if (pageSettings == null || pageSettings.PageId == -2)
            {
            }
            else
            {
                SiteMapNode node = menuDataSource.Provider.FindSiteMapNode(pageSettings.Url);

                if (node != null || pageSettings.PageId == -1)
                {
                    if (!useTreeView)
                    {
                        FlexMenu flexMenu = new FlexMenu();

                        flexMenu.MaxDataRenderDepth = maxDepth;
                        flexMenu.StartingNodePageId = startingPageId;
                        //flexMenu.SkinID = skinID;

                        if (showStartingNode)
                        {
                            string startingPageName = pageSettings.PageId == -1 ? "Root" : pageSettings.PageName;

                            if (currentPage.PageId == pageSettings.PageId)
                            {
                                flexMenu.ExtraTopMarkup += $@"<ul class='{flexMenu.RootUlCssClass} {flexMenu.UlSelectedCssClass}'>
								<li class='{flexMenu.RootLevelLiCssClass} {flexMenu.LiSelectedCssClass}'>
									<a href='{WebUtils.ResolveUrl(pageSettings.Url)}' class='{flexMenu.AnchorSelectedCssClass}'>{startingPageName }</a>"                                    ;
                            }
                            else
                            {
                                flexMenu.ExtraTopMarkup += $@"<ul class='{flexMenu.RootUlCssClass} {flexMenu.UlChildSelectedCssClass}'>
									<li class='{flexMenu.RootLevelLiCssClass} {flexMenu.LiChildSelectedCssClass}'>
										<a href='{WebUtils.ResolveUrl(pageSettings.Url)}' class='{flexMenu.AnchorChildSelectedCssClass}'>{startingPageName }</a>"                                        ;
                            }

                            flexMenu.ExtraBottomMarkup += "</li></ul>";
                        }

                        pnlInnerBody.Controls.Add(flexMenu);
                    }
                    else                     //useTreeView
                    {
                        menuDataSource.StartingNodeUrl  = node == null ? "~/" : node.Url;
                        menuDataSource.ShowStartingNode = showStartingNode;
                        mojoTreeView treeView = new mojoTreeView();
                        //treeView.SkinID = skinID;
                        treeView.MaxDataBindDepth = maxDepth;
                        treeView.DataSource       = menuDataSource;
                        try
                        {
                            treeView.DataBind();
                        }
                        catch (ArgumentException ex)
                        {
                            //log.Error(ex);
                        }

                        pnlInnerBody.Controls.Add(treeView);
                    }
                }
            }
        }