/// <summary> /// Добавя поделементите /// </summary> private bool AddSubItems ( StringBuilder subMenu, int currentIndex, // текущ индекс int parentID // текущ родител ) { bool isSelected = false; for (int i = currentIndex; i < this.AppMenu.Count; i++) { AppMenuItemModel item = this.AppMenu[i]; if (item.ParentID == parentID) { // Добавя елемента if (AddItem(subMenu, item, i)) { isSelected = true; } } else { return(isSelected); } } return(isSelected); }
public string Generate() { StringBuilder sbMenu = new StringBuilder(); // Начало на менюто sbMenu.Append("<" + this.GroupName + ((this.CSSMenu == "") ? "" : " class='" + this.CSSMenu + "'") + ">"); for (index = 0; index < this.AppMenu.Count; index++) { AppMenuItemModel item = this.AppMenu[index]; AddItem(sbMenu, item, index); } // Край на менюто sbMenu.Append("</" + this.GroupName + ">"); return(sbMenu.ToString()); }
private bool AddItem(StringBuilder menu, AppMenuItemModel item, int i) { bool isSelected = false; // Проверява дали е селектиран if (this.CSSGroupSelected != "") { if (item.ItemTypeID == 3) { if (("Page" == AdminHelpers.CurrentController(_Helper)) && (item.PageName == AdminHelpers.CurrentId(_Helper))) { isSelected = true; } } } // Добавя елемента menu.Append("<" + this.ItemName + (this.IsItemID ? " id=\"item_" + item.ItemID.ToString() + "\"" : "") + ((this.CSSItem == "") ? "" : " class=\"" + this.CSSItem + "\"") + ">"); menu.Append(GetItem(item, isSelected)); // Става текущ елемент index = i; // Добавя под елементите StringBuilder subMenu = new StringBuilder(); if (AddSubItems(subMenu, i + 1, item.ItemID)) { isSelected = true; } if (subMenu.Length > 0) { string selectedClass = (isSelected ? " class='" + this.CSSItemSelected + "'" : ""); menu.Append("<" + this.GroupName + selectedClass + ">"); menu.Append(subMenu); menu.Append("</" + this.GroupName + ">"); } subMenu.Clear(); // Край на елемента menu.Append("</" + this.ItemName + ">"); return(isSelected); }
/// <summary> /// Дава стойноста на елемента в зависимост от типа /// </summary> private string GetItem(AppMenuItemModel item, bool isSelected) { string itemValue = ""; // Ако елемента е линк if (this.IsItemLink) { object htmlAttributes = null; if (isSelected) { htmlAttributes = new { @class = this.CSSGroupSelected }; } // MVC Link if (item.ItemTypeID == 1) { itemValue = Html.LinkExtensions.ActionLink(_Helper, item.ItemText, item.LinkAction, item.LinkController, new { area = item.LinkArea }, htmlAttributes).ToString(); } // Page: Странница от базата else if (item.ItemTypeID == 3) { itemValue = Html.LinkExtensions.ActionLink(_Helper, item.ItemText, item.PageName, "Page", null, htmlAttributes).ToString(); } else { itemValue = item.ItemText; } } // елемента не е линк else { if (ItemFormat == "") { itemValue = item.ItemText; } else { itemValue = string.Format(this.ItemFormat, item.ItemText); } } return(itemValue); }