Example #1
0
        /// <summary>
        /// Builds a LinkButton control from a site map node
        /// </summary>
        /// <param name="node">The node</param>
        /// <param name="tabMenuRowStyle">The row style to render this LinkButton for</param>
        /// <param name="tabMenuDestinationLoadMethod">The Load method to use</param>
        /// <param name="marginLeft">The margin left.</param>
        /// <returns></returns>
        private Control BuildLinkButton(SiteMapNode node, TabMenuRowStyle tabMenuRowStyle, TabMenuDestinationLoadMethod tabMenuDestinationLoadMethod, string marginLeft)
        {
            LinkButton linkButton = new LinkButton();
            linkButton.CommandName = ((int)tabMenuDestinationLoadMethod).ToString();
            linkButton.CommandArgument = this.GetSiteMapNodeUrl(node);
            linkButton.Click += this.LinkButton_Click;
            linkButton.Attributes["onclick"] = "return CheckNavigationStatus()";
            linkButton.CausesValidation = false;

            linkButton.Text = string.Format(
                                 "{0} {1} {0}",
                                 Convert.ToChar(0x2022), // This is the dot you see surrounding secondary links.
                                 node.Title);

            if (SiteMapProviderWrapper.IsCurrentNodeAChildNode(node))
            {
                if (tabMenuRowStyle == TabMenuRowStyle.TextAnchorsLightGray)
                {
                    linkButton.Attributes["class"] = "TabMenuAnchorGreen Selected";
                }
                else if (tabMenuRowStyle == TabMenuRowStyle.TextAnchorsSecondLevel)
                {
                    linkButton.Attributes["class"] = "TabMenuAnchorSecondLevel Selected";
                }
                else
                {
                    linkButton.Attributes["class"] = "TabMenuAnchor Selected";
                }
            }
            else
            {
                if (tabMenuRowStyle == TabMenuRowStyle.TextAnchorsLightGray)
                {
                    linkButton.Attributes["class"] = "TabMenuAnchorGreen";
                }
                else if (tabMenuRowStyle == TabMenuRowStyle.TextAnchorsSecondLevel)
                {
                    linkButton.Attributes["class"] = "TabMenuAnchorSecondLevel";
                }
                else
                {
                    linkButton.Attributes["class"] = "TabMenuAnchor";
                }
            }

            if (tabMenuRowStyle == TabMenuRowStyle.ImageTabsSecondLevel || tabMenuRowStyle == TabMenuRowStyle.TextAnchorsSecondLevel)
            {
                linkButton.Style["margin-left"] = marginLeft;
            }

            return linkButton;
        }
Example #2
0
 /// <summary>
 /// Build either a DynamicImageAnchor or a TextAnchor control for a given node
 /// </summary>
 /// <param name="startNode">The node to build the control for</param>
 /// <param name="tabMenuRowStyle">The style of the row that this control is rendered for</param>
 /// <param name="tabMenuDestinationLoadMethod">The destination load method to use</param>
 /// <param name="marginLeft">The margin left.</param>
 /// <returns>
 /// A menu item control that the user can click on
 /// </returns>
 private Control BuildMenuItemControl(SiteMapNode startNode, TabMenuRowStyle tabMenuRowStyle, TabMenuDestinationLoadMethod tabMenuDestinationLoadMethod, string marginLeft)
 {
     if (tabMenuRowStyle == TabMenuRowStyle.ImageTabs || tabMenuRowStyle == TabMenuRowStyle.ImageTabsSecondLevel)
     {
         if (tabMenuDestinationLoadMethod == TabMenuDestinationLoadMethod.BrowserRedirect)
         {
             return this.BuildDynamicImageAnchor(startNode, tabMenuRowStyle, marginLeft);
         }
         else if (tabMenuDestinationLoadMethod == TabMenuDestinationLoadMethod.ServerTransfer || tabMenuDestinationLoadMethod == TabMenuDestinationLoadMethod.ResponseRedirect)
         {
             return this.BuildDynamicImageButton(startNode, tabMenuDestinationLoadMethod, tabMenuRowStyle, marginLeft);
         }
         else
         {
             throw new InvalidOperationException("Invalid DestinationLoadMethod specified.");
         }
     }
     else
     {
         if (tabMenuDestinationLoadMethod == TabMenuDestinationLoadMethod.BrowserRedirect)
         {
             return this.BuildTextAnchor(startNode, tabMenuRowStyle, marginLeft);
         }
         else if (tabMenuDestinationLoadMethod == TabMenuDestinationLoadMethod.ServerTransfer || tabMenuDestinationLoadMethod == TabMenuDestinationLoadMethod.ResponseRedirect)
         {
             return this.BuildLinkButton(startNode, tabMenuRowStyle, tabMenuDestinationLoadMethod, marginLeft);
         }
         else
         {
             throw new InvalidOperationException("Invalid DestinationLoadMethod specified.");
         }
     }
 }
Example #3
0
        /// <summary>
        /// Builds a dynamic image button control from a site map node.
        /// </summary>
        /// <param name="node">The node</param>
        /// <param name="tabMenuDestinationLoadMethod">The Load method to use</param>
        /// <param name="tabMenuRowStyle">The tab menu row style.</param>
        /// <param name="marginLeft">The margin left.</param>
        /// <returns>A dynamic image button control</returns>
        private Control BuildDynamicImageButton(SiteMapNode node, TabMenuDestinationLoadMethod tabMenuDestinationLoadMethod, TabMenuRowStyle tabMenuRowStyle, string marginLeft)
        {
            DynamicImageButton button = new DynamicImageButton();
            button.Click += this.TabImage_Click;
            button.CommandName = ((int)tabMenuDestinationLoadMethod).ToString();
            button.CommandArgument = this.GetSiteMapNodeUrl(node);
            button.CausesValidation = false;

            button.Attributes["alt"] = node.Title.ToUpper(CultureInfo.InvariantCulture);
            button.TextRenderingHint = TextRenderingHint.AntiAlias;
            button.EnableTheming = false;
            button.Selected = SiteMapProviderWrapper.IsCurrentNodeAChildNode(node);
            button.CssClass = "TabMenuImageButton";

            SetDynamicImageButtonStyles(node.Title, button, tabMenuRowStyle);

            if (tabMenuRowStyle == TabMenuRowStyle.ImageTabsSecondLevel || tabMenuRowStyle == TabMenuRowStyle.TextAnchorsSecondLevel)
            {
                button.Style["margin-left"] = marginLeft;
            }

            return button;
        }