using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Xml; using System.Web.Security; using System.Web.Configuration; public partial class Inc_Menus_Topo : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string menusXML_URL = "http://" + Request.ServerVariables["HTTP_HOST"] + "" + WebConfigurationManager.AppSettings["menus"].ToString(); XmlDocument menusIntranet = new XmlDocument(); menusIntranet.Load(menusXML_URL); XmlElement menusGrupo = menusIntranet.DocumentElement; /* ********************************************************************************* */ /* GRUPO ACTIVO */ string grupo_activo = "Geral"; // Home page string cssClassSelected = ""; string cssClassActivo = ""; string[] link_absoluto = Request.ServerVariables["URL"].Split('/'); string link_relativo = ""; // Cria o link relativo sem o ficheiro.aspx for (int i = 0; i < link_absoluto.Length - 1; i++) { link_relativo = link_relativo + link_absoluto[i] + "/"; } // GRUPOS XmlNodeList grupos = menusGrupo.SelectNodes("grupos"); foreach (XmlNode grupo in grupos) { // MENUS XmlNodeList menus = grupo.SelectNodes("menu"); foreach (XmlNode menu in menus) { // Verifica se está seleccionado um MENU if (menu["link"].InnerText.ToLower() == link_relativo.ToLower() || (menu["link"].InnerText.StartsWith(link_relativo.ToLower()) && link_relativo.Length > 1)) // link_relativo.Length > 1 » EVITA A COMPARAÇÃO DA HOME QUE É APENAS A / (barra) { grupo_activo = grupo["grupo"].InnerText; } else { // SUBMENUS XmlNodeList submenus = menu.SelectNodes("submenu"); foreach (XmlNode submenu in submenus) { // Verifica se está seleccionado um SUBMENU if (submenu["link"].InnerText.ToLower() == link_relativo.ToLower() || (submenu["link"].InnerText.StartsWith(link_relativo.ToLower()) && link_relativo.Length > 1)) // link_relativo.Length > 1 » EVITA A COMPARAÇÃO DA HOME QUE É APENAS A / (barra) { grupo_activo = grupo["grupo"].InnerText; } } } } } /* ********************************************************************************* */ /* GRUPOS */ //XmlNodeList grupos = menusGrupo.SelectNodes("grupos"); foreach (XmlNode grupo in grupos) { cssClassSelected = ""; cssClassActivo = ""; // VERIFICA SE O GRUPO É O ACTIVO if (grupo_activo == grupo["grupo"].InnerText) { cssClassSelected = "selected"; cssClassActivo = "grupoActivo"; } divMenuGrupos.InnerHtml = divMenuGrupos.InnerHtml + "