using System; using System.Collections.Generic; using System.Data; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using AyABL; using AyABL.AUT.Encripta; using AyABL.SEG; public partial class ControlUsuario_cuwMenu : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack && Session["PKROL"] != null) { try { MenuBL objMenuBL = new MenuBL(); //Se carga el dataset con la información del rol para poder desplegar los items DataSet menuDS = objMenuBL.cargarMenu(Convert.ToInt32(Session["PKROL"])); //Limpia los items del menu mnuMenu.Items.Clear(); // si hay datos if (menuDS != null) { foreach (DataRow drMenu in menuDS.Tables[0].Rows) { //Se crea un arreglo para guardar los hijos DataRow[] drArray; //El arreglo captura todos los items que son hijos drArray = menuDS.Tables[0].Select(String.Format("PADREMENU = {0}", drMenu["PKMENU"])); // si es un hijo o un nieto de alguien if (drMenu[Concepto.PADRE.ToString() + Tablas.menu.ToString()].ToString().ToUpper() != "-1") { MenuItem mniMenu; //Instanciar la variable que maneja el menu if (drMenu["URLMENU"].ToString() == "") { mniMenu = new MenuItem(drMenu[t_seg_menu.ETIQUETA.ToString() + Tablas.menu.ToString()].ToString(), drMenu[Constraints.PK.ToString() + Tablas.menu.ToString()].ToString(), null); } else { mniMenu = new MenuItem(drMenu[t_seg_menu.ETIQUETA.ToString() + Tablas.menu.ToString()].ToString(), drMenu[Constraints.PK.ToString() + Tablas.menu.ToString()].ToString(), null, drMenu[t_seg_menu.URL.ToString() + Tablas.menu.ToString()].ToString()); } foreach (MenuItem mI in mnuMenu.Items) { // si el item actual del menu es el papa del que estoy leyendo if (mI.Value.ToString() == drMenu[Concepto.PADRE.ToString() + Tablas.menu.ToString()].ToString()) { mI.ChildItems.Add(mniMenu); break; } else { // pregunto si pertenece a alguno de los hijos del item actual foreach (MenuItem mIHijos in mI.ChildItems) { // si el item actual del menu es el papa del que estoy leyendo if (mIHijos.Value.ToString() == drMenu[Concepto.PADRE.ToString() + Tablas.menu.ToString()].ToString()) { mIHijos.ChildItems.Add(mniMenu); break; } } } } } else { //Instanciar la variable que maneja el menu MenuItem mniMenu = new MenuItem(drMenu[t_seg_menu.ETIQUETA.ToString() + Tablas.menu.ToString()].ToString(), drMenu[Constraints.PK.ToString() + Tablas.menu.ToString()].ToString(), null, drMenu[t_seg_menu.URL.ToString() + Tablas.menu.ToString()].ToString()); // si es raíz mnuMenu.Items.Add(mniMenu); } } } } catch (Exception ex) { } } } }