示例#1
0
        private void BuildItem(MenuItem item, HtmlTextWriter writer)
        {
            Menu menu = Control as Menu;

            if ((menu != null) && (item != null) && (writer != null))
            {
                writer.WriteLine();
                writer.WriteBeginTag("li");

                string theClass = GetSelectStatusClass(item);
                if (theClass.Length > 0)
                {
                    writer.WriteAttribute("class", theClass);
                }

                writer.Write(HtmlTextWriter.TagRightChar);
                writer.Indent++;
                writer.WriteLine();

                if (((item.Depth < menu.StaticDisplayLevels) && (menu.StaticItemTemplate != null)) ||
                    ((item.Depth >= menu.StaticDisplayLevels) && (menu.DynamicItemTemplate != null)))
                {
                    writer.WriteBeginTag("div");
                    writer.WriteAttribute("class", GetItemClass(menu, item));
                    writer.Write(HtmlTextWriter.TagRightChar);
                    writer.Indent++;
                    writer.WriteLine();

                    MenuItemTemplateContainer container = new MenuItemTemplateContainer(menu.Items.IndexOf(item), item);
                    if ((item.Depth < menu.StaticDisplayLevels) && (menu.StaticItemTemplate != null))
                    {
                        menu.StaticItemTemplate.InstantiateIn(container);
                    }
                    else
                    {
                        menu.DynamicItemTemplate.InstantiateIn(container);
                    }
                    container.DataBind();
                    container.RenderControl(writer);

                    writer.Indent--;
                    writer.WriteLine();
                    writer.WriteEndTag("div");
                }
                else
                {
                    if (IsLink(item))
                    {
                        writer.WriteBeginTag("a");
                        if (!String.IsNullOrEmpty(item.NavigateUrl))
                        {
                            writer.WriteAttribute("href", menu.ResolveUrl(item.NavigateUrl));
                        }
                        else
                        {
                            writer.WriteAttribute("href", Page.ClientScript.GetPostBackClientHyperlink(menu, "b" + item.ValuePath.Replace(menu.PathSeparator.ToString(), "\\"), true));
                        }

                        string linkClass = GetSelectStatusClass(item);
                        if (linkClass.Length > 0)
                        {
                            writer.WriteAttribute("class", linkClass);
                        }
                        //writer.WriteAttribute("class", GetItemClass(menu, item));

                        WebControlAdapterExtender.WriteTargetAttribute(writer, item.Target);

                        if (!String.IsNullOrEmpty(item.ToolTip))
                        {
                            writer.WriteAttribute("title", item.ToolTip);
                        }
                        else if (!String.IsNullOrEmpty(menu.ToolTip))
                        {
                            writer.WriteAttribute("title", menu.ToolTip);
                        }
                        writer.Write(HtmlTextWriter.TagRightChar);
                        writer.Indent++;
                        writer.WriteLine();
                    }
                    else
                    {
                        writer.WriteBeginTag("span");
                        writer.WriteAttribute("class", GetItemClass(menu, item));
                        writer.Write(HtmlTextWriter.TagRightChar);
                        writer.Indent++;
                        writer.WriteLine();
                    }

                    bool parentSelected = IsParentItemSelected(item);

                    if (item.Depth < 1)
                    {
                        writer.WriteBeginTag("span");
                        writer.WriteAttribute("class", "l");
                        writer.Write(HtmlTextWriter.TagRightChar);
                        writer.WriteEndTag("span");

                        writer.WriteBeginTag("span");
                        writer.WriteAttribute("class", "r");
                        writer.Write(HtmlTextWriter.TagRightChar);
                        writer.WriteEndTag("span");

                        writer.WriteBeginTag("span");
                        writer.WriteAttribute("class", "t");
                        writer.Write(HtmlTextWriter.TagRightChar);
                    }

                    writer.Write(item.Text);

                    if (item.Depth < 1)
                    {
                        writer.WriteEndTag("span");
                    }


                    if (IsLink(item))
                    {
                        writer.Indent--;
                        writer.WriteEndTag("a");
                    }
                    else
                    {
                        writer.Indent--;
                        writer.WriteEndTag("span");
                    }
                }

                if ((item.ChildItems != null) && (item.ChildItems.Count > 0))
                {
                    BuildItems(item, item.ChildItems, false, writer);
                }

                writer.Indent--;
                writer.WriteLine();
                writer.WriteEndTag("li");
            }
        }
        private void BuildItem(MenuItem item, HtmlTextWriter writer)
        {
            Menu menu = Control as Menu;

            if ((menu != null) && (item != null) && (writer != null))
            {
                writer.WriteLine();
                writer.WriteBeginTag("li");

                string theClass = (item.ChildItems.Count > 0) ? "AspNet-Menu-WithChildren" : "AspNet-Menu-Leaf";

                string selectedStatusClass = GetSelectStatusClass(item);
                if (!String.IsNullOrEmpty(selectedStatusClass))
                {
                    theClass += " " + selectedStatusClass;
                }
                writer.WriteAttribute("class", theClass);

                writer.Write(HtmlTextWriter.TagRightChar);
                writer.Indent++;
                writer.WriteLine();

                if (((item.Depth < menu.StaticDisplayLevels) && (menu.StaticItemTemplate != null)) ||
                    ((item.Depth >= menu.StaticDisplayLevels) && (menu.DynamicItemTemplate != null)))
                {
                    writer.WriteBeginTag("div");
                    writer.WriteAttribute("class", GetItemClass(menu, item));
                    writer.Write(HtmlTextWriter.TagRightChar);
                    writer.Indent++;
                    writer.WriteLine();

                    MenuItemTemplateContainer container = new MenuItemTemplateContainer(menu.Items.IndexOf(item), item);
                    if ((item.Depth < menu.StaticDisplayLevels) && (menu.StaticItemTemplate != null))
                    {
                        menu.StaticItemTemplate.InstantiateIn(container);
                    }
                    else
                    {
                        menu.DynamicItemTemplate.InstantiateIn(container);
                    }
                    container.DataBind();
                    container.RenderControl(writer);

                    writer.Indent--;
                    writer.WriteLine();
                    writer.WriteEndTag("div");
                }
                else
                {
                    if (IsLink(item))
                    {
                        writer.WriteBeginTag("a");
                        if (!String.IsNullOrEmpty(item.NavigateUrl))
                        {
                            //writer.WriteAttribute("href", Page.Server.HtmlEncode(menu.ResolveClientUrl(item.NavigateUrl)));
                            writer.WriteAttribute("href", menu.ResolveUrl(item.NavigateUrl));
                        }
                        else
                        {
                            writer.WriteAttribute("href", Page.ClientScript.GetPostBackClientHyperlink(menu, "b" + item.ValuePath.Replace(menu.PathSeparator.ToString(), "\\"), true));
                        }

                        writer.WriteAttribute("class", GetItemClass(menu, item));
                        WebControlAdapterExtender.WriteTargetAttribute(writer, item.Target);

                        if (!useMenuTooltipForCustomCss)
                        {
                            if (!String.IsNullOrEmpty(item.ToolTip))
                            {
                                writer.WriteAttribute("title", item.ToolTip);
                            }
                            else if (!String.IsNullOrEmpty(menu.ToolTip))
                            {
                                writer.WriteAttribute("title", menu.ToolTip);
                            }
                        }
                        writer.Write(HtmlTextWriter.TagRightChar);
                        writer.Indent++;
                        writer.WriteLine();
                    }
                    else
                    {
                        writer.WriteBeginTag("span");
                        writer.WriteAttribute("class", GetItemClass(menu, item));
                        writer.Write(HtmlTextWriter.TagRightChar);
                        writer.Indent++;
                        writer.WriteLine();
                    }

                    //if (!String.IsNullOrEmpty(item.ImageUrl))
                    //{
                    //    writer.WriteBeginTag("img");
                    //    writer.WriteAttribute("src", menu.ResolveClientUrl(item.ImageUrl));
                    //    writer.WriteAttribute("alt", !String.IsNullOrEmpty(item.ToolTip) ? item.ToolTip : (!String.IsNullOrEmpty(menu.ToolTip) ? menu.ToolTip : item.Text));
                    //    writer.Write(HtmlTextWriter.SelfClosingTagEnd);
                    //    writer.Write(HtmlTextWriter.SpaceChar);
                    //}

                    writer.WriteFullBeginTag("span");
                    writer.Write(item.Text);
                    writer.WriteEndTag("span");

                    if (IsLink(item))
                    {
                        writer.Indent--;
                        writer.WriteEndTag("a");
                    }
                    else
                    {
                        writer.Indent--;
                        writer.WriteEndTag("span");
                    }
                }

                if ((item.ChildItems != null) && (item.ChildItems.Count > 0))
                {
                    BuildItems(item.ChildItems, false, writer);
                }

                writer.Indent--;
                writer.WriteLine();
                writer.WriteEndTag("li");
            }
        }
示例#3
0
        private void BuildItem(MenuItem item, HtmlTextWriter writer)
        {
            Menu menu = Control as Menu;

            if ((menu != null) && (item != null) && (writer != null))
            {
                writer.WriteLine();
                writer.WriteBeginTag("li");
                //writer.WriteAttribute("class", item.ChildItems.Count > 0 ? "AspNet-Menu-WithChildren" : "AspNet-Menu-Leaf");
                writer.Write(HtmlTextWriter.TagRightChar);
                writer.Indent++;
                writer.WriteLine();

                if (((item.Depth < menu.StaticDisplayLevels) && (menu.StaticItemTemplate != null)) ||
                    ((item.Depth >= menu.StaticDisplayLevels) && (menu.DynamicItemTemplate != null)))
                {
                    writer.WriteBeginTag("div");
                    //writer.WriteAttribute("class", GetItemClass(menu, item));
                    writer.Write(HtmlTextWriter.TagRightChar);
                    writer.Indent++;
                    writer.WriteLine();

                    MenuItemTemplateContainer container = new MenuItemTemplateContainer(menu.Items.IndexOf(item), item);
                    if ((item.Depth < menu.StaticDisplayLevels) && (menu.StaticItemTemplate != null))
                    {
                        menu.StaticItemTemplate.InstantiateIn(container);
                    }
                    else
                    {
                        menu.DynamicItemTemplate.InstantiateIn(container);
                    }
                    container.DataBind();
                    container.RenderControl(writer);

                    writer.Indent--;
                    writer.WriteLine();
                    writer.WriteEndTag("div");
                }
                else
                {
                    if ((item.NavigateUrl.Length > 0) || item.Selectable)
                    {
                        writer.WriteBeginTag("a");
                        if (item.NavigateUrl.Length > 0)
                        {
                            //writer.WriteAttribute("href", Page.Server.HtmlEncode(menu.ResolveUrl(item.NavigateUrl)));
                            writer.WriteAttribute("href", menu.ResolveUrl(item.NavigateUrl));
                        }
                        else
                        {
                            writer.WriteAttribute("href", Page.ClientScript.GetPostBackClientHyperlink(menu, "b" + item.ValuePath.Replace(menu.PathSeparator.ToString(), "\\"), true));
                        }

                        //writer.WriteAttribute("class", GetItemClass(menu, item));

                        if (item.Target.Length > 0)
                        {
                            writer.WriteAttribute("target", item.Target);
                        }
                        if (item.ToolTip.Length > 0)
                        {
                            writer.WriteAttribute("title", item.ToolTip);
                        }
                        else if (menu.ToolTip.Length > 0)
                        {
                            writer.WriteAttribute("title", menu.ToolTip);
                        }
                        writer.Write(HtmlTextWriter.TagRightChar);
                        writer.Indent++;
                        writer.WriteLine();
                    }
                    else
                    {
                        writer.WriteBeginTag("span");
                        //writer.WriteAttribute("class", GetItemClass(menu, item));
                        writer.Write(HtmlTextWriter.TagRightChar);
                        writer.Indent++;
                        writer.WriteLine();
                    }

                    if (item.ImageUrl.Length > 0)
                    {
                        writer.WriteBeginTag("img");
                        writer.WriteAttribute("src", menu.ResolveClientUrl(item.ImageUrl));
                        writer.WriteAttribute("alt", item.ToolTip.Length > 0 ? item.ToolTip : (menu.ToolTip.Length > 0 ? menu.ToolTip : item.Text));
                        writer.Write(HtmlTextWriter.SelfClosingTagEnd);
                        writer.Write("&nbsp;");
                    }

                    writer.Write(item.Text);

                    if ((item.NavigateUrl.Length > 0) || item.Selectable)
                    {
                        writer.Indent--;
                        writer.WriteLine();
                        writer.WriteEndTag("a");
                    }
                    else
                    {
                        writer.Indent--;
                        writer.WriteLine();
                        writer.WriteEndTag("span");
                    }
                }

                if ((item.ChildItems != null) && (item.ChildItems.Count > 0))
                {
                    BuildItems(item.ChildItems, false, writer);
                }

                writer.Indent--;
                writer.WriteLine();
                writer.WriteEndTag("li");
            }
        }
示例#4
0
        private void BuildItem(MenuItem item, HtmlTextWriter writer)
        {
            Menu menu = Control as Menu;

            if ((menu != null) && (item != null) && (writer != null))
            {
                writer.WriteLine();
                writer.WriteBeginTag("li");


                if (renderCssClasses)
                {
                    string theClass = GetItemLiClass(menu, item);

                    if (renderLiSelectedCss)
                    {
                        string selectedStatusClass = GetLiSelectStatusClass(item);
                        if (!String.IsNullOrEmpty(selectedStatusClass))
                        {
                            if (theClass.Length > 0)
                            {
                                theClass += " " + selectedStatusClass;
                            }
                            else
                            {
                                theClass = selectedStatusClass;
                            }
                        }
                    }

                    if (theClass.Length > 0)
                    {
                        writer.WriteAttribute("class", theClass);
                    }
                }

                writer.Write(HtmlTextWriter.TagRightChar);
                writer.Indent++;
                writer.WriteLine();

                if (((item.Depth < menu.StaticDisplayLevels) && (menu.StaticItemTemplate != null)) ||
                    ((item.Depth >= menu.StaticDisplayLevels) && (menu.DynamicItemTemplate != null)))
                {
                    writer.WriteBeginTag("div");
                    if (renderCssClasses)
                    {
                        writer.WriteAttribute("class", GetItemClass(menu, item));
                    }
                    writer.Write(HtmlTextWriter.TagRightChar);
                    writer.Indent++;
                    writer.WriteLine();

                    MenuItemTemplateContainer container = new MenuItemTemplateContainer(menu.Items.IndexOf(item), item);
                    if ((item.Depth < menu.StaticDisplayLevels) && (menu.StaticItemTemplate != null))
                    {
                        menu.StaticItemTemplate.InstantiateIn(container);
                    }
                    else
                    {
                        menu.DynamicItemTemplate.InstantiateIn(container);
                    }
                    container.DataBind();
                    container.RenderControl(writer);

                    writer.Indent--;
                    writer.WriteLine();
                    writer.WriteEndTag("div");
                }
                else
                {
                    if (IsLink(item))
                    {
                        writer.WriteBeginTag("a");
                        if (!String.IsNullOrEmpty(item.NavigateUrl))
                        {
                            writer.WriteAttribute("href", Page.Server.HtmlEncode(menu.ResolveUrl(item.NavigateUrl)));
                        }
                        else
                        {
                            writer.WriteAttribute("href", Page.ClientScript.GetPostBackClientHyperlink(menu, "b" + item.ValuePath.Replace(menu.PathSeparator.ToString(), "\\"), true));
                        }

                        if (renderCssClasses)
                        {
                            string anchorCss = GetItemClass(menu, item);
                            if (anchorCss.Length > 0)
                            {
                                writer.WriteAttribute("class", anchorCss);
                            }
                        }

                        WebControlAdapterExtender.WriteTargetAttribute(writer, item.Target);

                        if (!useMenuTooltipForCustomCss)
                        {
                            if (!String.IsNullOrEmpty(item.ToolTip))
                            {
                                writer.WriteAttribute("title", item.ToolTip);
                            }
                            else if (!String.IsNullOrEmpty(menu.ToolTip))
                            {
                                writer.WriteAttribute("title", menu.ToolTip);
                            }
                        }
                        writer.Write(HtmlTextWriter.TagRightChar);
                        writer.Indent++;
                        writer.WriteLine();
                    }
                    else
                    {
                        writer.WriteBeginTag("span");
                        if (renderCssClasses)
                        {
                            writer.WriteAttribute("class", GetItemClass(menu, item));
                        }
                        writer.Write(HtmlTextWriter.TagRightChar);
                        writer.Indent++;
                        writer.WriteLine();
                    }



                    switch (innerSpanMode)
                    {
                    case "Artisteer":

                        writer.WriteBeginTag("span");
                        writer.WriteAttribute("class", "l");
                        writer.Write(HtmlTextWriter.TagRightChar);
                        writer.WriteEndTag("span");

                        writer.WriteBeginTag("span");
                        writer.WriteAttribute("class", "r");
                        writer.Write(HtmlTextWriter.TagRightChar);
                        writer.WriteEndTag("span");

                        writer.WriteBeginTag("span");
                        writer.WriteAttribute("class", "t");
                        writer.Write(HtmlTextWriter.TagRightChar);

                        break;

                    case "SingleSpan":
                        writer.WriteFullBeginTag("span");
                        break;

                    case "ThreeSpans":
                        writer.WriteBeginTag("span");
                        writer.WriteAttribute("class", "menutext");
                        writer.Write(HtmlTextWriter.TagRightChar);

                        break;

                    case "":
                    case "None":
                    default:
                        // do nothing
                        break;
                    }

                    if ((renderImages) && (!string.IsNullOrEmpty(item.ImageUrl)))
                    {
                        writer.WriteBeginTag("img");
                        writer.WriteAttribute("src", menu.ResolveClientUrl(item.ImageUrl));
                        if (useMenuTooltipForCustomCss)
                        {
                            writer.WriteAttribute("alt", item.Text);
                        }
                        else
                        {
                            writer.WriteAttribute("alt", !String.IsNullOrEmpty(item.ToolTip) ? item.ToolTip : (!String.IsNullOrEmpty(menu.ToolTip) ? menu.ToolTip : item.Text));
                        }
                        writer.Write(HtmlTextWriter.SelfClosingTagEnd);
                        writer.Write(HtmlTextWriter.SpaceChar);
                    }

                    // put a switch here to satisfy this request
                    // http://www.mojoportal.com/Forums/Thread.aspx?thread=2824&mid=34&pageid=5&ItemID=4&pagenumber=1#post12578
                    if (renderMenuText)
                    {
                        writer.Write(item.Text);
                    }

                    switch (innerSpanMode)
                    {
                    case "Artisteer":
                        writer.WriteEndTag("span");
                        break;

                    case "SingleSpan":
                        writer.WriteEndTag("span");
                        break;

                    case "ThreeSpans":
                        writer.WriteEndTag("span");

                        writer.WriteBeginTag("span");
                        writer.WriteAttribute("class", "tab-l");
                        writer.Write(HtmlTextWriter.TagRightChar);
                        writer.Write("&nbsp;");
                        writer.WriteEndTag("span");

                        writer.WriteBeginTag("span");
                        writer.WriteAttribute("class", "tab-r");
                        writer.Write(HtmlTextWriter.TagRightChar);
                        writer.Write("&nbsp;");
                        writer.WriteEndTag("span");

                        break;

                    case "":
                    case "None":
                    default:
                        // do nothing
                        break;
                    }

                    if (IsLink(item))
                    {
                        writer.Indent--;
                        writer.WriteEndTag("a");
                    }
                    else
                    {
                        writer.Indent--;
                        writer.WriteEndTag("span");
                    }
                }

                if ((item.ChildItems != null) && (item.ChildItems.Count > 0))
                {
                    BuildItems(item.ChildItems, false, writer);
                }

                writer.Indent--;
                writer.WriteLine();
                writer.WriteEndTag("li");
            }
        }
示例#5
0
        private void BuildItem(MenuItem item, HtmlTextWriter writer, bool isRoot, int index)
        {
            Menu menu = Control as Menu;

            if ((menu != null) && (item != null) && (writer != null))
            {
                writer.WriteLine();
                writer.WriteBeginTag("li");

                string theClass = (item.ChildItems.Count > 0) ? "AspNet-Menu-WithChildren" : "AspNet-Menu-Leaf";

                string selectedStatusClass = GetSelectStatusClass(item);
                if (!String.IsNullOrEmpty(selectedStatusClass))
                {
                    theClass += " " + selectedStatusClass;
                }
                if (isRoot)
                {
                    theClass += String.Format(" {0}", (index == 0 ? "first" : "notfirst"));
                }
                writer.WriteAttribute("class", theClass);

                writer.Write(HtmlTextWriter.TagRightChar);
                writer.Indent++;
                writer.WriteLine();

                if (((item.Depth < menu.StaticDisplayLevels) && (menu.StaticItemTemplate != null)) ||
                    ((item.Depth >= menu.StaticDisplayLevels) && (menu.DynamicItemTemplate != null)))
                {
                    writer.WriteBeginTag("div");
                    writer.WriteAttribute("class", GetItemClass(menu, item));
                    writer.Write(HtmlTextWriter.TagRightChar);
                    writer.Indent++;
                    writer.WriteLine();

                    using (MenuItemTemplateContainer container = new MenuItemTemplateContainer(menu.Items.IndexOf(item), item))
                    {
                        if ((item.Depth < menu.StaticDisplayLevels) && (menu.StaticItemTemplate != null))
                        {
                            menu.StaticItemTemplate.InstantiateIn(container);
                        }
                        else
                        {
                            menu.DynamicItemTemplate.InstantiateIn(container);
                        }
                        container.DataBind();
                        container.RenderControl(writer);
                    }

                    writer.Indent--;
                    writer.WriteLine();
                    writer.WriteEndTag("div");
                }
                else
                {
                    if (IsLink(item))
                    {
                        writer.WriteBeginTag("a");
                        if (!String.IsNullOrEmpty(item.NavigateUrl))
                        {
                            writer.WriteAttribute("href", Page.Server.HtmlEncode(menu.ResolveUrl(item.NavigateUrl)));
                        }
                        else
                        {
                            writer.WriteAttribute("href", Page.ClientScript.GetPostBackClientHyperlink(menu, "b" + item.ValuePath.Replace(menu.PathSeparator.ToString(), "\\"), true));
                        }

                        writer.WriteAttribute("class", GetItemClass(menu, item));
                        WebControlAdapterExtender.WriteTargetAttribute(writer, item.Target);

                        if (!String.IsNullOrEmpty(item.ToolTip))
                        {
                            writer.WriteAttribute("title", item.ToolTip);
                        }
                        else if (!String.IsNullOrEmpty(menu.ToolTip))
                        {
                            writer.WriteAttribute("title", menu.ToolTip);
                        }
                        writer.Write(HtmlTextWriter.TagRightChar);
                        writer.Indent++;
                        writer.WriteLine();
                    }
                    else
                    {
                        writer.WriteBeginTag("span");
                        writer.WriteAttribute("class", GetItemClass(menu, item));
                        writer.Write(HtmlTextWriter.TagRightChar);
                        writer.Indent++;
                        writer.WriteLine();
                    }

                    if (!String.IsNullOrEmpty(item.ImageUrl))
                    {
                        writer.WriteBeginTag("img");
                        writer.WriteAttribute("src", menu.ResolveClientUrl(item.ImageUrl));
                        writer.WriteAttribute("alt", !String.IsNullOrEmpty(item.ToolTip) ? item.ToolTip : (!String.IsNullOrEmpty(menu.ToolTip) ? menu.ToolTip : item.Text));
                        writer.Write(HtmlTextWriter.SelfClosingTagEnd);
                        writer.Write(HtmlTextWriter.SpaceChar);
                    }

                    // put a switch here to satisfy this request
                    // http://www.vivasky.com/Groups/Topic.aspx?topic=2824&mid=34&pageid=5&ItemID=4&pagenumber=1#post12578
                    if (renderMenuText)
                    {
                        writer.Write(item.Text);
                    }

                    if (IsLink(item))
                    {
                        writer.Indent--;
                        writer.WriteEndTag("a");
                    }
                    else
                    {
                        writer.Indent--;
                        writer.WriteEndTag("span");
                    }
                }

                if ((item.ChildItems != null) && (item.ChildItems.Count > 0))
                {
                    BuildItems(item.ChildItems, false, writer);
                }

                writer.Indent--;
                writer.WriteLine();
                writer.WriteEndTag("li");
            }
        }
示例#6
0
        private void BuildItems(HtmlTextWriter writer, MenuItemCollection Menus)
        {
            foreach (MenuItem item in Menus)
            {
                /*
                 * If (item.Depth = 0) Then
                 *
                 *  writer.WriteBeginTag("div")
                 *  writer.WriteAttribute("class", "StaticMenuItemStyle")
                 *
                 *  writer.Write(HtmlTextWriter.SpaceChar & "style" & HtmlTextWriter.EqualsChar & HtmlTextWriter.DoubleQuoteChar)
                 *  If Not StaticMenuItemStyle.Width.IsEmpty Then
                 *      writer.WriteStyleAttribute("width", DefaultWidth.ToString())
                 *  End If
                 *  writer.Write(HtmlTextWriter.DoubleQuoteChar)
                 *
                 *  writer.Write(HtmlTextWriter.TagRightChar)
                 *  writer.Indent += 1
                 *  writer.WriteLine()
                 *
                 * Else
                 */

                writer.WriteBeginTag("li");
                if (item.Depth == 0)
                {
                    writer.WriteAttribute("class", "StaticMenuItemStyle");

                    writer.WriteAttribute("onmouseover", "this.className+=\' StaticHoverStyle\'");
                    writer.WriteAttribute("onmouseout", "this.className=this.className.replace(/\\ StaticHoverStyle/ig, \'\');");
                }
                else
                {
                    writer.WriteAttribute("class", "DynamicMenuItemStyle LevelMenuItemStyles_" + (item.Depth - 1).ToString());


                    writer.WriteAttribute("onmouseover", "this.className+=\' DynamicHoverStyle\'");
                    writer.WriteAttribute("onmouseout", "this.className=this.className.replace(/\\ DynamicHoverStyle/ig, \'\');");
                }
                if (Orientation == System.Web.UI.WebControls.Orientation.Horizontal && item.Depth == 0)
                {
                    writer.WriteAttribute("style", "float:left");
                }
                writer.Write(HtmlTextWriter.TagRightChar);
                writer.Indent++;
                writer.WriteLine();



                //End If

                if ((item.Depth < StaticDisplayLevels) && (StaticItemTemplate != null))
                {
                    MenuItemTemplateContainer container = new MenuItemTemplateContainer(this.Items.IndexOf(item), item);
                    StaticItemTemplate.InstantiateIn(container);
                    container.DataBind();
                    container.RenderControl(writer);
                }
                else if (DynamicItemTemplate != null)
                {
                    MenuItemTemplateContainer container = new MenuItemTemplateContainer(this.Items.IndexOf(item), item);
                    DynamicItemTemplate.InstantiateIn(container);
                    container.DataBind();
                    container.RenderControl(writer);
                }
                else
                {
                    BuildInnerItem(writer, item);
                }

                if (item.ChildItems.Count > 0)
                {
                    writer.WriteBeginTag("ul");
                    writer.WriteAttribute("class", "DynamicMenuStyle");


                    Unit tamanhoH = Unit.Empty;
                    if (LevelMenuItemStyles.Count > item.Depth)
                    {
                        tamanhoH = LevelMenuItemStyles[item.Depth].Height;
                    }
                    if (tamanhoH.IsEmpty)
                    {
                        tamanhoH = DynamicMenuItemStyle.Height;
                    }
                    if (tamanhoH.IsEmpty)
                    {
                        tamanhoH = StaticMenuItemStyle.Height;
                    }
                    if (tamanhoH.IsEmpty)
                    {
                        tamanhoH = DefaultHeight;
                    }

                    string topstyle = "";
                    if (item.Depth > 0 || Orientation == System.Web.UI.WebControls.Orientation.Vertical)
                    {
                        topstyle = "; top:0px"; //& tamanhoH.ToString()
                    }



                    Unit tamanhoW = Unit.Empty;
                    if (LevelMenuItemStyles.Count > item.Depth)
                    {
                        tamanhoW = LevelMenuItemStyles[item.Depth].Width;
                    }
                    if (tamanhoW.IsEmpty)
                    {
                        tamanhoW = DynamicMenuItemStyle.Width;
                    }
                    if (tamanhoW.IsEmpty)
                    {
                        tamanhoW = StaticMenuItemStyle.Width;
                    }
                    if (tamanhoW.IsEmpty)
                    {
                        tamanhoW = DefaultWidth;
                    }


                    /*Dim fatorAmpliacao As Integer = item.Depth*/
                    if (Orientation == System.Web.UI.WebControls.Orientation.Horizontal && item.Depth == 0)
                    {
                        tamanhoW = new Unit(0, tamanhoW.Type);
                    }
                    /*fatorAmpliacao += 1*/


                    writer.WriteAttribute("style", "left:" + tamanhoW.ToString() + topstyle);
                    writer.Write(HtmlTextWriter.TagRightChar);

                    BuildItems(writer, item.ChildItems);
                    writer.WriteEndTag("ul");
                }


                writer.Indent--;

                /*
                 * If (item.Depth = 0) Then
                 *  writer.WriteEndTag("div")
                 * Else
                 */
                writer.WriteEndTag("li");
                /*End If*/
                writer.WriteLine();
            }
        }
示例#7
0
        private void BuildItem(MenuItem item, HtmlTextWriter writer)
        {
            Menu menu = Control as Menu;

            if ((menu != null) && (item != null) && (writer != null))
            {
                writer.WriteLine();
                writer.WriteBeginTag("li");

                string theClass            = (item.ChildItems.Count > 0) ? "has-submenu" : "AspNet-Menu2-Leaf";
                string selectedStatusClass = GetSelectStatusClass(item);
                if (!String.IsNullOrEmpty(selectedStatusClass))
                {
                    theClass += " " + selectedStatusClass;
                }
                writer.WriteAttribute("class", theClass);

                writer.Write(HtmlTextWriter.TagRightChar);
                writer.Indent++;
                writer.WriteLine();

                if (((item.Depth < menu.StaticDisplayLevels) && (menu.StaticItemTemplate != null)) ||
                    ((item.Depth >= menu.StaticDisplayLevels) && (menu.DynamicItemTemplate != null)))
                {
                    writer.WriteBeginTag("div");
                    writer.WriteAttribute("class", GetItemClass(menu, item));
                    writer.Write(HtmlTextWriter.TagRightChar);
                    writer.Indent++;
                    writer.WriteLine();

                    MenuItemTemplateContainer container = new MenuItemTemplateContainer(menu.Items.IndexOf(item), item);
                    if ((item.Depth < menu.StaticDisplayLevels) && (menu.StaticItemTemplate != null))
                    {
                        menu.StaticItemTemplate.InstantiateIn(container);
                    }
                    else
                    {
                        menu.DynamicItemTemplate.InstantiateIn(container);
                    }
                    container.DataBind();
                    container.RenderControl(writer);

                    writer.Indent--;
                    writer.WriteLine();
                    writer.WriteEndTag("div");
                }
                else
                {
                    if (IsLink(item))
                    {
                        writer.WriteBeginTag("a");
                        if (!String.IsNullOrEmpty(item.NavigateUrl))
                        {
                            writer.WriteAttribute("href", Page.Server.HtmlEncode(menu.ResolveClientUrl(item.NavigateUrl)));
                        }
                        else
                        {
                            writer.WriteAttribute("href", Page.ClientScript.GetPostBackClientHyperlink(menu, "b" + item.ValuePath.Replace(menu.PathSeparator.ToString(), "\\"), true));
                        }

                        writer.WriteAttribute("class", GetItemClass(menu, item));
                        WebControlAdapterExtender.WriteTargetAttribute(writer, item.Target);

                        if (!String.IsNullOrEmpty(item.ToolTip))
                        {
                            writer.WriteAttribute("title", item.ToolTip);
                        }
                        else if (!String.IsNullOrEmpty(menu.ToolTip))
                        {
                            writer.WriteAttribute("title", menu.ToolTip);
                        }
                        writer.Write(HtmlTextWriter.TagRightChar);
                        writer.Indent++;
                        writer.WriteLine();
                    }
                    else
                    {
                        writer.WriteBeginTag("a");                        //changed span to a
                        writer.WriteAttribute("class", "submenu-toggle"); //GetItemClass(menu, item)
                        writer.Write(HtmlTextWriter.TagRightChar);
                        writer.Indent++;
                        writer.WriteLine();
                    }


                    //Add Icon Set // Modified by kuldeep
                    writer.WriteBeginTag("i");

                    switch (item.Value.Trim().ToUpper())
                    {
                    case "ACCOUNT MENU":
                        writer.WriteAttribute("class", "fa fa-user");
                        break;

                    case "REPORTING":
                        writer.WriteAttribute("class", "fa fa-bar-chart");
                        break;

                    case "CONFIGURATION":
                        writer.WriteAttribute("class", "fa fa-cogs");
                        break;

                    case "HOSTING SPACE MENU":
                        writer.WriteAttribute("class", "fa fa-server");
                        break;

                    case "ORGANIZATION MENU":
                        writer.WriteAttribute("class", "fa fa-users");
                        break;

                    case "HOME":
                        writer.WriteAttribute("class", "fa fa-home");
                        break;

                    case "VPS MENU":
                        writer.WriteAttribute("class", "fa fa-desktop");
                        break;

                    //    case "VPS-MENÜ":
                    //        writer.WriteAttribute("class", "fa fa-desktop");
                    //        break;
                    //    case "KONTOMENÜ":
                    //        writer.WriteAttribute("class", "fa fa-user");
                    //break;
                    //    case "HOSTING-BEREICH MENÜ":
                    //        writer.WriteAttribute("class", "fa fa-server");
                    //break;
                    //case "ORGANISATIONSMENÜ":
                    //        writer.WriteAttribute("class", "fa fa-users");
                    //break;
                    //    case "KONTOÜBERSICHT":
                    //        writer.WriteAttribute("class", "fa fa-home");
                    //break;
                    //    case "BERICHTE":
                    //        writer.WriteAttribute("class", "fa fa-bar-chart");
                    //        break;
                    //    case "KONFIGURATION":
                    //        writer.WriteAttribute("class", "fa fa-cogs");
                    //        break;
                    //    case "AUFGABENPLANUNG":
                    //        if (item.Parent == null)
                    //            writer.WriteAttribute("class", "fa fa-clock-o");
                    //        break;
                    case "SPACESCHEDULEDTASKS":
                        if (item.Parent == null)
                        {
                            writer.WriteAttribute("class", "fa fa-clock-o");
                        }
                        break;
                    }
                    writer.Write(HtmlTextWriter.TagRightChar);
                    writer.Indent++;
                    writer.WriteLine();
                    writer.WriteEndTag("i");
                    //---------------

                    if (!String.IsNullOrEmpty(item.ImageUrl))
                    {
                        writer.WriteBeginTag("img");
                        writer.WriteAttribute("src", menu.ResolveClientUrl(item.ImageUrl));
                        writer.WriteAttribute("alt", !String.IsNullOrEmpty(item.ToolTip) ? item.ToolTip : (!String.IsNullOrEmpty(menu.ToolTip) ? menu.ToolTip : item.Text));
                        writer.Write(HtmlTextWriter.SelfClosingTagEnd);
                    }

                    //Added By kuldeep---------------
                    writer.WriteBeginTag("span");
                    writer.WriteAttribute("class", "text");
                    writer.Write(HtmlTextWriter.TagRightChar);
                    writer.Indent++;
                    writer.WriteLine();
                    writer.Write(item.Text);
                    writer.WriteEndTag("span");
                    //---------------

                    if (IsLink(item))
                    {
                        writer.Indent--;
                        writer.WriteLine();
                        writer.WriteEndTag("a");
                    }
                    else
                    {
                        writer.Indent--;
                        writer.WriteLine();
                        writer.WriteEndTag("a"); //changed span to a
                    }
                }

                if ((item.ChildItems != null) && (item.ChildItems.Count > 0))
                {
                    BuildItems(item.ChildItems, false, writer);
                }

                writer.Indent--;
                writer.WriteLine();
                writer.WriteEndTag("li");
            }
        }