private void CargarMenu(int perfil) { List <OpcionBE> lista = new List <OpcionBE>(); lista = new OpcionBL().AccesoPerfil(perfil); //RECORREMOS LA LISTA PARA AGREGAR LOS ELEMENTOS QUE ESTARÁN EN LA CABECERA DEL MENÚ foreach (var item in lista) { // SI ES UNA OPCIÓN PADRE if (item.OpcionesId == Convert.ToInt32(item.PadreId)) { // ITEM QUE SE AGREGA AL MENU MenuItem mnuMenuItem = new MenuItem(); mnuMenuItem.Value = item.OpcionesId.ToString(); mnuMenuItem.Text = item.DescOpciones; mnuMenuItem.NavigateUrl = item.URL; mnuMenuItem.ImageUrl = item.Icono; //AGREGAMOS EL ITEM AL MENÚ Menu1.Items.Add(mnuMenuItem); //AHORA MANDAMOS OTRO METODO, LO QUE HARA ES RECORRER NUEVAMENTE LA LISTA PARA VER CUALES SON SUS HIJO //Y ASI PODER AGREGARLOS COMO SUBITEMS //addSubItemMenu(mnuMenuItem, lista); } } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { #region Agregamos los css y javascript UtilitarioBL.AddClassMaster(this.Page); UtilitarioBL.AddScriptMaster(this.Page); #endregion #region Asignamos los HiddenField e imagenes EntidadDetalleBE rutaVirtualEstandar = new EntidadDetalleBE(); rutaVirtualEstandar.Entidad.IdEntidad = "CONF"; rutaVirtualEstandar.IdValor = "RUTA_VIRT_EST"; rutaVirtualEstandar = EntidadDetalleBL.ListarEntidadDetalle(rutaVirtualEstandar)[0]; hfRutaVirtualEstandar.Value = rutaVirtualEstandar.ValorCadena1; UtilitarioBL.AsignarImagen(rutaVirtualEstandar, imgLogo, "/images/LogoSIAE60.png"); #endregion UsuarioBE Usuario = (UsuarioBE)Session["Usuario"]; AplicacionBE aplicacionBE = (AplicacionBE)Session["Aplicacion"]; if (Session["Usuario"] != null) { lblIdUsuario.InnerText = Usuario.IdUsuario; lblNombreCompleto.InnerText = Usuario.NombreRazon + " " + Usuario.ApellidoPaterno; lblPerfil.InnerText = Usuario.Perfil.ValorCadena1; } else { divUsuario.Visible = false; btnUsuario.Visible = false; } #region Cargamos el menu de opciones if (Session["Aplicacion"] != null) { if (aplicacionBE.Opciones.Count().Equals(0)) { aplicacionBE.Opciones = OpcionBL.ListarOpciones(Usuario, aplicacionBE); } if (aplicacionBE.Opciones.Count() > 0) { StringBuilder sbOpciones = new StringBuilder(); String strIdOpcionPadre = ""; //Int32 intIteracion = 0; sbOpciones.Append("<div class=\"container-fluid\">"); #region Div de navbar-toggle sbOpciones.Append("<div class=\"navbar-header\">"); sbOpciones.Append("<button type=\"button\" class=\"navbar-toggle collapsed\" data-toggle=\"collapse\" data-target=\"#divMenu\">"); sbOpciones.Append("<span class=\"sr-only\">Menu</span>"); sbOpciones.Append("<span class=\"icon-bar\"></span>"); sbOpciones.Append("<span class=\"icon-bar\"></span>"); sbOpciones.Append("<span class=\"icon-bar\"></span>"); sbOpciones.Append("</button>"); sbOpciones.Append("</div>"); #endregion #region Div de menu sbOpciones.Append("<div class=\"collapse navbar-collapse\" id=\"divMenu\" runat=\"server\">"); sbOpciones.Append("<ul class=\"nav navbar-nav navbar-base-center\">"); foreach (OpcionBE item in aplicacionBE.Opciones) { IEnumerable <OpcionBE> OpcionesHijo = aplicacionBE.Opciones.Where(T => T.IdOpcionPadre == item.IdOpcion).Select(T => T); String strCssSweepToTop = ""; String strHref = ""; if (item.Orden.Length == 2)//Solo cuando es el primer nivel del menu { strCssSweepToTop = "hvr-base-sweep-to-top-primary"; } if (item.URL != null && item.URL.ToString().Length > 0)//Solo si hay valor en la propiedad { strHref = "href=\"" + item.URL + "\""; } #region Comparamos el id del ultimo padre recorrido con el id padre de la opcion actual para cerrar el submenu if (strIdOpcionPadre.Length > 0) { if ((item.IdOpcionPadre != null ? item.IdOpcionPadre : "") != strIdOpcionPadre) { sbOpciones.Append("</ul>"); sbOpciones.Append("</li>"); strIdOpcionPadre = ""; } } #endregion if (OpcionesHijo.Count() > 0) { sbOpciones.Append("<li class=\"dropdown " + strCssSweepToTop + "\"><a " + strHref + " class=\"dropdown-toggle\" data-toggle=\"dropdown\" role =\"button\"><span class=\"" + item.Icono + "\"></span> " + item.Nombre + " <span class=\"caret\"></span></a>"); sbOpciones.Append("<ul class=\"dropdown-menu\">"); strIdOpcionPadre = item.IdOpcion; } else { sbOpciones.Append("<li class=\"" + strCssSweepToTop + "\"><a " + strHref + "><span class=\"" + item.Icono + "\"></span> " + item.Nombre + "</a></li>"); } } #region Verificamos si hubo algun padre que se estuvirera recocciendo para cerrarlo if (strIdOpcionPadre.Length > 0) { sbOpciones.Append("</ul>"); sbOpciones.Append("</li>"); strIdOpcionPadre = ""; } #endregion #endregion sbOpciones.Append("</div>"); sbOpciones.Append("</div>"); divNav.Attributes.Add("class", "navbar-base navbar-base-primary"); divNav.InnerHtml = sbOpciones.ToString(); } } #endregion } }