Foros del Web » Programando para Internet » ASPX (.net) »

Eventos CheckBox en GridView

Estas en el tema de Eventos CheckBox en GridView en el foro de ASPX (.net) en Foros del Web. Hola a todos El motivo del presente es un problema que tengo al tratar de identificar cuáles CheckBoxs han sido seleccionados por el usuario en ...
  #1 (permalink)  
Antiguo 27/11/2008, 08:40
 
Fecha de Ingreso: noviembre-2008
Mensajes: 11
Antigüedad: 15 años, 5 meses
Puntos: 0
Eventos CheckBox en GridView

Hola a todos

El motivo del presente es un problema que tengo al tratar de identificar cuáles CheckBoxs han sido seleccionados por el usuario en un GridView.

La estructura de mi GridView es la siguiente:

Código:
<asp:GridView ID="grvDatos" runat="server" BackColor="White" BorderColor="#B1BAE0"
    BorderStyle="Solid" BorderWidth="1px" CellPadding="4" ForeColor="Black" 
    GridLines="Vertical" Font-Bold="False" AutoGenerateColumns="False" 
    ondatabound="grvDatos_DataBound" >
    <FooterStyle CssClass="pie_tabla" />
    <RowStyle CssClass="registro_resaltado" />
    <EditRowStyle CssClass="registro_edicion" />
    <SelectedRowStyle CssClass="registro_seleccionado" />
    <Columns>
        <asp:BoundField DataField="Código" DataFormatString="" HeaderText="Código" />
        <asp:BoundField DataField="Nombre" DataFormatString="" HeaderText="Página" />
        <asp:TemplateField HeaderText="Registrar">
            <ItemTemplate>
                <asp:CheckBox ID="chkRegistrar" runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Listar">
            <ItemTemplate>
                <asp:CheckBox ID="chkListar" name="chkListar" runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Modificar">
            <ItemTemplate>
                <asp:CheckBox ID="chkModificar" name="chkModificar" runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Eliminar">
            <ItemTemplate>
                <asp:CheckBox ID="chkEliminar" name="chkEliminar" runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Cód">
            <ItemTemplate>
                <asp:Label ID="lblCodigo" runat="server" Text="" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
    <PagerStyle CssClass="pie_tabla" HorizontalAlign="Center" />
    <HeaderStyle CssClass="titulo_tabla" />
    <AlternatingRowStyle CssClass="registro_normal" />
</asp:GridView>
Tengo un evento click en un botón llamado cmdAccion con el que pretendo evaluar cuáles CheckBox fueron seleccionados por el usuario.

El código que tengo en el evento del botón es el siguiente:

Código:
protected void cmdAccion_Click(object sender, EventArgs e)
    {
        bool regib = false;
        bool listb = false;
        bool modib = false;
        bool elimb = false;
        
        foreach (GridViewRow row in grvDatos.Rows)
        {
            codigoPagina = int.Parse(row.Cells[0].Text);

            regib = ((CheckBox)row.FindControl("chkRegistrar")).Checked;
            listb = ((CheckBox)row.FindControl("chkListar")).Checked;
            modib = ((CheckBox)row.FindControl("chkModificar")).Checked;
            elimb = ((CheckBox)row.FindControl("chkEliminar")).Checked;

            string registrar = "0";
            string listar = "0";
            string modificar = "0";
            string eliminar = "0";

            if (regib)
                registrar = "1";
            if (listb)
                listar = "1";
            if (modib)
                modificar = "1";
            if (elimb)
                eliminar = "1";
        }
    }
Resulta que a pesar de tener seleccionados varios CheckBox, al presionar el botón cmdAccion y evaluar cada uno de los registros del GridView, en ningún momento los CheckBox aparecen como seleccionados.

Si alguien me puede ayudar explicándome qué parte del proceso he hecho de forma incorrecta le estaría inmensamente agradecido.

De antemano muchas gracias por la colaboración prestada.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:29.