protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            ArtisteerTreeView atv = Control as ArtisteerTreeView;

            if (atv != null)
            {
                useMenuTooltipForCustomCss = atv.UseMenuTooltipForCustomCss;
            }

            TreeView treeView = Control as TreeView;

            if (Extender.AdapterEnabled && _updateViewState && (treeView != null))
            {
                treeView.CollapseAll();
                ExpandToState(treeView.Nodes, _newViewState);
                _updateViewState = false;
            }
        }
        protected override void RenderBeginTag(HtmlTextWriter writer)
        {
            if (Extender.AdapterEnabled)
            {
                //Extender.RenderBeginTag(writer, "AspNet-TreeView");
                Extender.RenderBeginTag(writer, "art-vmenublock");

                writer.Write("<div class=\"art-vmenublock-tl\"></div>");
                writer.Write("<div class=\"art-vmenublock-tr\"></div>");
                writer.Write("<div class=\"art-vmenublock-bl\"></div>");
                writer.Write("<div class=\"art-vmenublock-br\"></div>");
                writer.Write("<div class=\"art-vmenublock-tc\"></div>");
                writer.Write("<div class=\"art-vmenublock-bc\"></div>");
                writer.Write("<div class=\"art-vmenublock-cl\"></div>");
                writer.Write("<div class=\"art-vmenublock-cr\"></div>");
                writer.Write("<div class=\"art-vmenublock-cc\"></div>");

                writer.Write("<div class=\"art-vmenublock-body\">");

                ArtisteerTreeView treeView = Control as ArtisteerTreeView;
                if (treeView != null)
                {
                    if ((treeView.RenderNavigationHeader) && (treeView.NavigationHeaderText.Length > 0))
                    {
                        writer.Write("<div class=\"art-vmenublockheader\">");
                        writer.Write("<div class=\"t\">" + treeView.NavigationHeaderText + "</div>");
                        writer.Write("</div>");
                    }
                }


                writer.Write("<div class=\"art-vmenublockcontent\">");
                writer.Write("<div class=\"art-vmenublockcontent-body\">");
            }
            else
            {
                base.RenderBeginTag(writer);
            }
        }
Пример #3
0
        private void RenderTreeView()
        {
            Page.EnableViewState = true;
            //pageMenu.Visible = false;
            PageSettings currentPage = CacheHelper.GetCurrentPage();

            CTreeView treeMenu1;

            if (useArtisteer)
            {
                treeMenu1 = new ArtisteerTreeView();
            }
            else
            {
                treeMenu1 = new CTreeView();
            }
            this.menuPlaceHolder.Controls.Add(treeMenu1);

            treeMenu1.ShowExpandCollapse = treeViewShowExpandCollapse;

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

            //treeMenu1.EnableClientScript = false;
            //treeMenu1.ShowExpandCollapse = treeViewShowExpandCollapse;
            treeMenu1.PopulateNodesFromClient = treeViewPopulateOnDemand;

            treeMenu1.ExpandDepth = treeViewExpandDepth;



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

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


            //// 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");
            //    }
            //}


            //bool useFolderForSiteDetection
            //    = WebConfigSettings.UseFoldersInsteadOfHostnamesForMultipleSites;
            //string virtualFolder = VirtualFolderEvaluator.VirtualFolderName();

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

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


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

            //if (startingNodeOffset > 0)
            //{
            //    pageMapDataSource.StartingNodeOffset = startingNodeOffset;
            //}

            //if (treeViewExpandDepth > 0)
            //{
            //    treeMenu1.ExpandDepth = treeViewExpandDepth;
            //}

            //treeViewPopulateOnDemand = false;
            //treeMenu1.PopulateNodesFromClient = treeViewPopulateOnDemand;

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



            if (treeMenu1.SelectedNode != null)
            {
                CTreeView.ExpandToValuePath(treeMenu1, treeMenu1.SelectedNode.ValuePath);
            }
            else
            {
                //bool didSelect = false;

                String 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);
                        }
                    }
                }

                CTreeView.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;
            }
        }