none
¿Cómo capturar si está o no Checked columna Checkbox en Gridview? C# RRS feed

  • Pregunta

  • Hola a todos! cuento con una grilla la cual, la 1° columna, es de Ckeckbox. Investigando encontré el siguiente código para capturar si está o no Checked cierta fila:

                    for (int i = 0; i < this.gvBusquedaReclamo.Rows.Count; i++)
                    {
                        CheckBox chk = gvBusquedaReclamo.Rows[i].Cells[0].Controls[0] as CheckBox;
    
                        if (chk != null && chk.Checked)
                        {
                            string CodRec = gvBusquedaReclamo.Rows[i].Cells[1].Text;
    
                            Reclamo objReclamo = objClsReclamo.SelectPorCodigo(CodRec);
                            objReclamo.rec_IDOrdenServicio = Convert.ToInt64(arraySp[0]);
    
                            objClsReclamo.ActualizarReclamo(objReclamo);
    
                            Historial objHistorial = new Historial();
                            objHistorial.his_fechaIngreso = Convert.ToDateTime(txtFechaInicio.Text);
                            objHistorial.his_horaIngreso = DateTime.Now.ToString("HH:mm");
                            objHistorial.his_observaciones = "Generación de Orden de Servicio";
                            objHistorial.his_IDOrdenServicio = Convert.ToInt64(arraySp[0]);
                            objHistorial.his_IDReclamo = objReclamo.rec_IDReclamo;
    
                            clsHistorial objClsHistorial = new clsHistorial();
                            objClsHistorial.NuevoHistorial(objHistorial);
                        }
                    }


    El problema está en:

    CheckBox chk = gvBusquedaReclamo.Rows[i].Cells[0].Controls[0] as CheckBox;

    No entiendo porqué me toma como valor null. El Gridview es el siguiente:

            <div>
                <asp:GridView ID="gvBusquedaReclamo" runat="server" CssClass="mGrid" AutoGenerateColumns="False">
                    <Columns>
                        <asp:TemplateField HeaderStyle-ForeColor="White">
                            <ItemTemplate>
                                <asp:CheckBox ID="chkAgregar" runat="server" ToolTip="Seleccionar" />
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>
            </div>

    El Gridview cuenta con 9 columnas, la de Checkbox, y las restantes las agrego por código, por si es útil este dato.

    Gracias por su atención! Saludos


    • Editado AguFortini viernes, 26 de octubre de 2018 16:41
    viernes, 26 de octubre de 2018 12:31

Respuestas

  • hola

    intenta usando

    CheckBox chk = gvBusquedaReclamo.Rows[i].FindControl("chkAgregar") as CheckBox;

    co eso podrias localizar el control por el nombre

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta AguFortini sábado, 27 de octubre de 2018 12:57
    viernes, 26 de octubre de 2018 20:00

Todas las respuestas

  • El problema está en:

    CheckBox chk = gvBusquedaReclamo.Rows[i].Cells[0].Controls[0] as CheckBox;


    No debería ser ese el problema, cambia la linea anterior por esta.

    CheckBox chk = (CheckBox)gvBusquedaReclamo.Rows[i].Cells[0].Controls[0];

    poné un breakpoint y verificas el valor que se almacena en chk. 

    viernes, 26 de octubre de 2018 17:34
  • hola

    intenta usando

    CheckBox chk = gvBusquedaReclamo.Rows[i].FindControl("chkAgregar") as CheckBox;

    co eso podrias localizar el control por el nombre

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta AguFortini sábado, 27 de octubre de 2018 12:57
    viernes, 26 de octubre de 2018 20:00
  • Hola, 

    En realcion a tu cosulta me gustaria compartir contigo el siguiente enlace que puede ayudarte, de cualquier forma queod al  pendiente cualquier situacion futura. 

    https://docs.microsoft.com/en-us/aspnet/web-forms/overview/data-access/enhancing-the-gridview/adding-a-gridview-column-of-checkboxes-cs 

    Saludos cordiales

     

    Gracias por usar los foros de  MSDN 

     

    Tonatiuh Abrego 

    ______________

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

     

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

     

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.


    lunes, 29 de octubre de 2018 13:29
    Moderador