private void GenerarMenu(int usuarioID) { try { this.mSisPack.Items.Clear(); /* Obtenemos todo el menú habilitado para el usuario de la sesión. */ IOpcion opcion = OpcionFactory.GetOpcion(); opcion.EsAccion = false; /*Obtenemos la variable que indica si es Servidor de Reportes o Produccion*/ string permiteReportes = System.Configuration.ConfigurationManager.AppSettings["Server"]; bool esReporte = permiteReportes == "R" ? true : false;// Convert.ToBoolean(permiteReportes); DsOpcion ds = opcion.GetOpcionesMenuByUsuarioID(usuarioID, esReporte); /* Creamos el nodo principal (raíz). */ foreach (DataRow dr in ds.Datos.Select("OpcionPadreID IS NULL", "OrdenVisual")) { /* Creamos un nodo padre. */ System.Web.UI.WebControls.MenuItem itemPadre = new System.Web.UI.WebControls.MenuItem(); itemPadre.Text = dr["Titulo"].ToString(); itemPadre.Value = dr["OpcionID"].ToString(); if (ds.Datos.Select("OpcionPadreID = '" + dr["OpcionID"] + "'", "OrdenVisual").Length > 0) { /* Generar los subnodos recursivamente. */ GenerarSubMenu(itemPadre, ds, ds.Datos.Select("OpcionPadreID = '" + dr["OpcionID"] + "'", "OrdenVisual")); } else { /* Si tiene una Url seteada la colocamos al nodo. */ if (!dr["Url"].ToString().Equals("")) { itemPadre.NavigateUrl = dr["Url"].ToString(); } else { itemPadre.Selected = false; } } /* Agregamos el nodo padre(completo) al nodo raíz. */ this.mSisPack.Items.Add(itemPadre); } opcion = null; ds = null; } catch (Exception ex) { throw (ex); } }
private void BuscarHijos(int perfilID, string opcionPadreID, squishyTREE.TreeNode n) { IOpcion opcion = OpcionFactory.GetOpcion(); opcion.OpcionPadreID = opcionPadreID; DsOpcion ds = opcion.GetOpcionesByPerfilID(perfilID); int i = 2; foreach (DsOpcion.DatosRow dr in ds.Datos) { string key = "n" + i; // obtengo el nodo padre squishyTREE.TreeNode n1 = n.AddNode(dr.OpcionID, key); n1.AddTaggedValue("val1", dr.Descripcion); // busco los hijos de este padre this.BuscarHijos(perfilID, dr.OpcionID, n1); i++; } }
private void buscarHijos(string opcionPadreID, squishyTREE.TreeNode n) { IOpcion opcion = OpcionFactory.GetOpcion(); DsOpcion ds = opcion.GetOpcionesHijos(opcionPadreID, Utiles.Validaciones.obtieneEntero(this.txtPerfilID.Text)); int i = 2; foreach (DsOpcion.DatosRow dr in ds.Datos) { string key = "n" + i; // obtengo el nodo padre squishyTREE.TreeNode n1 = n.AddNode(dr.OpcionID, key, true); n1.AddTaggedValue("val1", dr.Descripcion); if (dr.Asignado) { n1.Check(); } // busco los hijos de este padre buscarHijos(dr.OpcionID, n1); i++; } }
private void Page_Load(object sender, System.EventArgs e) { if (User.Identity.IsAuthenticated) { //this.SetCultura(); string sOpcion = "asignarOpciones"; Menu oMenu = (Menu)this.FindControl("Menu1"); this.ValidarSeguridad(oMenu, sOpcion); } tvwMain.AddHeader("Descripción", "", typeof(string), "val1", "left"); if (!this.IsPostBack) { this.txtPerfilID.Text = this.Request.QueryString["PerfilID"] == null ? null : this.Request.QueryString["PerfilID"]; ObtenerPerfil(); IOpcion opcion = OpcionFactory.GetOpcion(); DsOpcion ds = opcion.GetOpcionesPadres(Utiles.Validaciones.obtieneEntero(this.txtPerfilID.Text)); foreach (DsOpcion.DatosRow dr in ds.Datos) { // obtengo el nodo padre tvwMain.ForceInheritedChecks = true; squishyTREE.TreeNode n1 = tvwMain.AddNode(dr.OpcionID, "n1", true); n1.AddTaggedValue("val1", dr.Descripcion); if (dr.Asignado) { n1.Check(); } // busco los hijos de este padre buscarHijos(dr.OpcionID, n1); } } }
private void BindGrid(int currentPage) { try { #region Consulta de permisos por perfil if (this.rbPermisosPorPerfil.Checked && !this.ddlPerfilPorCategoria.SelectedValue.Trim().Equals("")) { /* Consultar si existe el perfil, dependiendo de los filtros ingresados. */ IPerfil perfil = PerfilFactory.GetPerfil(); perfil.PerfilID = this.ddlPerfilPorCategoria.SelectedValue.Trim().Equals("")?0: Convert.ToInt32(this.ddlPerfilPorCategoria.SelectedValue.Trim()); if (perfil.Consultar()) { IOpcion opcion = OpcionFactory.GetOpcion(); opcion.OpcionPadreID = ""; DsOpcion ds = opcion.GetOpcionesByPerfilID(perfil.PerfilID); tvwMain.Controls.Clear(); foreach (DsOpcion.DatosRow dr in ds.Datos) { // obtengo el nodo padre squishyTREE.TreeNode n1 = tvwMain.AddNode(dr.OpcionID, "n1"); n1.AddTaggedValue("val1", dr.Descripcion); // busco los hijos de este padre this.BuscarHijos(perfil.PerfilID, dr.OpcionID, n1); } } this.tvwMain.Visible = true; this.butImprimir.Visible = true; tvwMain.ExpandAll(); } else { this.tvwMain.Visible = false; this.butImprimir.Visible = false; } #endregion #region Consulta de usuarios por perfil if (this.rbUsuariosPorPerfil.Checked && !this.ddlPerfilPorCategoria.SelectedValue.Trim().Equals("")) { AdministrarGrillas.Configurar(dtgDatosUsuarios, "UsuarioID", this.CantidadOpciones); IPerfil usuarios = PerfilFactory.GetPerfil(); usuarios.PerfilID = ddlPerfilPorCategoria.SelectedValue.Trim().Equals("")?0:Convert.ToInt32(ddlPerfilPorCategoria.SelectedValue.Trim()); DsUsuarios dsUsuarios = usuarios.GetUsuariosByPerfilID(); this.dtgDatosUsuarios.DataSource = dsUsuarios; this.dtgDatosUsuarios.CurrentPageIndex = currentPage; this.dtgDatosUsuarios.DataBind(); usuarios = null; dsUsuarios = null; this.dtgDatosUsuarios.Visible = true; } else { this.dtgDatosUsuarios.Visible = false; } #endregion #region Consulta de perfiles por permiso if (this.rbPerfilesPorPermiso.Checked && !this.ddlPermiso.SelectedValue.Trim().Equals("")) { AdministrarGrillas.Configurar(dtgDatosPerfiles, "PerfilID", this.CantidadOpciones); IOpcion permiso = OpcionFactory.GetOpcion(); permiso.OpcionID = this.ddlPermiso.SelectedValue.Trim().Equals("")?"":this.ddlPermiso.SelectedValue.Trim(); DsPerfil dsPerfilesO = permiso.GetPerfilesByOpcionID(); this.dtgDatosPerfiles.DataSource = dsPerfilesO; this.dtgDatosUsuarios.CurrentPageIndex = currentPage; this.dtgDatosPerfiles.DataBind(); permiso = null; dsPerfilesO = null; this.dtgDatosPerfiles.Visible = true; } else { this.dtgDatosPerfiles.Visible = false; } #endregion #region Consulta de perfiles por usuario if (this.rbPerfilesPorUsuario.Checked) { AdministrarGrillas.Configurar(dtgDatosPerfiles, "PerfilID", this.CantidadOpciones); IUsuarios perfiles = UsuariosFactory.GetUsuario(); perfiles.UsuarioID = cUsuario.UsuarioID.Trim().Equals("")?0:Convert.ToInt32(cUsuario.UsuarioID.Trim()); DsPerfil dsPerfiles = perfiles.GetPerfilesAsignadosByUsuarioID(); this.dtgDatosPerfiles.DataSource = dsPerfiles; this.dtgDatosUsuarios.CurrentPageIndex = currentPage; this.dtgDatosPerfiles.DataBind(); perfiles = null; dsPerfiles = null; this.dtgDatosPerfiles.Visible = true; } else if (!this.rbPerfilesPorPermiso.Checked) { this.dtgDatosPerfiles.Visible = false; } #endregion Page.RegisterStartupScript("mostrar", "<script language='javascript'>VisualizarGrilla();\n</script>"); } catch (Exception ex) { ((ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message); } }