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"]); } } } } }
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(); } } }