Recorrer las casillas de verificación de GridView

Estoy tratando de recorrer todas las casillas de verificación y obtener su Valor y si están marcadas o no y guardar lo marcado/no marcado en la base de datos según el Valor que va a contener la ID del registro. Estoy tratando de hacer esto a través de asp.net, ¿alguna sugerencia?

Aquí está el código:

            <Columns>
                <asp:TemplateField HeaderText="Application" ItemStyle-Width="25%">
                    <ItemTemplate>                        
                        <%#Eval("App")%>
                    </ItemTemplate>                    
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Edit" ItemStyle-Width="25%">
                    <ItemTemplate>
                        <input name="chkEdit" runat="server" value='<%# Eval("AppID") %>' class="checkbox" type="checkbox" checked='<%# Eval("Edit") %>' />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Delete" ItemStyle-Width="25%">
                    <ItemTemplate>                        
                        <input name="chkDelete" runat="server" value='<%# Eval("AppID") %>' class="checkbox" type="checkbox" checked='<%# Eval("Delete") %>' />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="View" ItemStyle-Width="25%">
                    <ItemTemplate>                        
                        <input name="chkView" runat="server" value='<%# Eval("AppID") %>' class="checkbox" type="checkbox" checked='<%# Eval("View") %>' />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>  

preguntado el 09 de marzo de 12 a las 22:03

@DeviantSeev Intenté recorrer los Controles para la casilla de verificación, pero eso no funcionó ... también intenté usar Javascript donde puedo obtener todas las casillas de verificación, pero prefiero hacer todo el trabajo en asp.net. Quiero ver si hay una forma en asp.net de obtener todos los valores y marcados/desmarcados que no sean javascript. -

Una vez que el usuario haga clic en el botón "Guardar", tendría que revisar todas las casillas de verificación y guardar su estado actual en la tabla. -

2 Respuestas

string[] controls = new string[] {"chkEdit","chkDelete","chkView"};

foreach (GridViewRow r in YourGridView.Rows)
{
   foreach(string cnt in controls){
     int value =  Convert.ToInt32(((System.Web.UI.HtmlControls.HtmlInputCheckBox)r.FindControl(cnt)).Value);
     bool isChecked = ((System.Web.UI.HtmlControls.HtmlInputCheckBox)r.FindControl(cnt)).Checked;
     //now you have id and checked/unchecked. use your query to save it to database
   }
}

respondido 09 mar '12, 22:03

Muchas gracias por la respuesta, esto era algo que estaba buscando. ¿Hay alguna forma de obtener la casilla de verificación dinámicamente que no sea codificarla? ¿Existe la posibilidad de recorrer las casillas de verificación Html y asignarlas al FindControl? - Nick Manojlovic

en el evento onclick haz algo como esto.

foreach(Gridviewrow gvr in Gridview1.Rows)
 {
     if(((CheckBox)gvr.findcontrol("CheckBox1")).Checked == true)
     {

        //do something
     }
 }

respondido 09 mar '12, 22:03

Hola, gracias por responder. Ya he hecho algo como esto, pero detrás de la casilla de verificación hay un valor de ID de base de datos, cómo pasar el control: value='<%# Eval("AppID") %>' - Nick Manojlovic

¿También hay una forma de encontrar dinámicamente los controles en lugar del nombre de la casilla de verificación de codificación dura? - Nick Manojlovic

El valor de la etiqueta de entrada html se puede recuperar con algo como esto. request.form('checkboxID'). ¿Puedo preguntarle por qué está usando la etiqueta html y no la casilla de verificación asp.net? - AJP

Gracias. Sí. La razón por la que estoy usando una etiqueta html es porque me resultó útil almacenar una identificación de un registro en un campo de valor. Inicialmente, lo que sucede es que vinculo las casillas de verificación con los datos en la base de datos y un usuario puede cambiar esos datos y cuando hace clic en Guardar, actualiza el valor original que está en la base de datos. Estoy abierto a sugerencias para hacerlo de manera diferente? - Nick Manojlovic

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.