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:
Tengo un evento click en un botón llamado cmdAccion con el que pretendo evaluar cuáles CheckBox fueron seleccionados por el usuario.<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>
El código que tengo en el evento del botón es el siguiente:
Código:
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.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"; } }
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.