private void CargarAcciones()
        {
            DataTable dt      = new DataTable();
            string    mensaje = string.Empty;

            dt = perfiles.ModuloAccionConsultar(lblCadena.Text, ref mensaje);

            if (!mensaje.Equals(string.Empty))
            {
                AlertError(mensaje);
            }
            else
            {
                foreach (DataRow rowAccion in dt.Rows)
                {
                    for (int i = 0; i < Grid2.VisibleRowCount; i++)
                    {
                        if (rowAccion["IdModulo"].ToString().Equals(Grid2.GetRowValues(i, "IdModulo").ToString()))
                        {
                            ASPxCheckBox chkConsultar = Grid2.FindRowCellTemplateControl(i, (GridViewDataColumn)Grid2.Columns["Consultar"], "chkConsultar") as ASPxCheckBox;
                            ASPxCheckBox chkAgregar   = Grid2.FindRowCellTemplateControl(i, (GridViewDataColumn)Grid2.Columns["Agregar"], "chkAgregar") as ASPxCheckBox;
                            ASPxCheckBox chkEditar    = Grid2.FindRowCellTemplateControl(i, (GridViewDataColumn)Grid2.Columns["Editar"], "chkEditar") as ASPxCheckBox;
                            ASPxCheckBox chkEliminar  = Grid2.FindRowCellTemplateControl(i, (GridViewDataColumn)Grid2.Columns["Eliminar"], "chkEliminar") as ASPxCheckBox;
                            ASPxCheckBox chkExportar  = Grid2.FindRowCellTemplateControl(i, (GridViewDataColumn)Grid2.Columns["Exportar"], "chkExportar") as ASPxCheckBox;
                            chkConsultar.Visible = Convert.ToBoolean(rowAccion["Consultar"]);
                            chkAgregar.Visible   = Convert.ToBoolean(rowAccion["Agregar"]);
                            chkEditar.Visible    = Convert.ToBoolean(rowAccion["Editar"]);
                            chkEliminar.Visible  = Convert.ToBoolean(rowAccion["Eliminar"]);
                            chkExportar.Visible  = Convert.ToBoolean(rowAccion["Exportar"]);
                        }
                    }
                }
            }
        }
Beispiel #2
0
        private void CargarAcciones()
        {
            DataTable dtModulosAcciones = null;
            string    mensaje           = string.Empty;

            try
            {
                //Obtener el conjunto de datos de dos tablas
                dtModulosAcciones = perfiles.ModuloAccionConsultar(ref mensaje);
                //Si ocurrio algún error, notificarlo
                if (!mensaje.Equals(string.Empty))
                {
                    (this.Master as Principal).AlertError(mensaje);
                    return;
                }

                //Obtneer la lista de acciones que no se encuentran en la tabla modulosAcciones
                List <DataRow> lAccionNo = new List <DataRow>();
                foreach (DataRow drAccion in dtAcciones.Rows)
                {
                    if (!dtModulosAcciones.Columns.Contains(drAccion["Accion"].ToString()))
                    {
                        lAccionNo.Add(drAccion);
                    }
                }
                //Eliminar permisos que no existen en los modulos
                foreach (DataRow noAccion in lAccionNo)
                {
                    GridColumn boundColumn1 = RadGrid2.MasterTableView.GetColumn(noAccion["Accion"].ToString().Replace(" ", ""));
                    RadGrid2.MasterTableView.Columns.Remove(boundColumn1);
                    dtAcciones.Rows.Remove(noAccion);
                }

                //Recorrer acciones y modulos
                foreach (GridDataItem item in RadGrid2.MasterTableView.Items)
                {
                    foreach (DataRow drAccion in dtAcciones.Rows)
                    {
                        string sAccion = drAccion["Accion"].ToString();

                        try
                        {
                            bool permiso = (from DataRow permisos in dtModulosAcciones.Rows
                                            where permisos["IdModulo"].ToString().Equals(item["IdModulo"].Text)
                                            select Convert.ToBoolean(permisos[sAccion])).First <bool>();

                            CheckBox cbAccion = ((CheckBox)(item[sAccion.Replace(" ", "")].Controls[0]));
                            //cbAccion.ID = sAccion;
                            cbAccion.ToolTip = sAccion;
                            cbAccion.Attributes.Add("runat", "server");
                            cbAccion.Attributes.Add("onclick", "permisosClick(this, event);");
                            //cbAccion.CheckedChanged += new EventHandler(this.CbxMarcarAccion_CheckedChanged);
                            //cbAccion.AutoPostBack = true;
                            cbAccion.Checked = false;
                            cbAccion.Enabled = true;
                            cbAccion.Visible = permiso;
                        }
                        catch (Exception)
                        {
                            //Cacha el error, si la accion no existe en la tabla de modulos acciones.
                        }
                    }
                }
            }
            catch (Exception e) { string erro = e.Message; }
            finally
            {
                //Liberar objetos
                if (dtModulosAcciones != null)
                {
                    dtModulosAcciones.Dispose();
                }
            }
        }