none
Ayuda con checkbox en gridview RRS feed

  • Pregunta

  • Saludos:

    Tengo un gridview que se crea con una consulta a la base de datos, la cual tiene una columna con checkbox.

    Al seleccionar un registro, se crea una consulta SQL y me devuelve información, esta información es para comparar con una columna del gridview y según su condición el checkbox de cada fila será True o False.

    Es decir, está creado el gridview y quiero ir poniendo true o false a los checked mediante código.

    Como se puede hacer?

    foreach(GridViewRow row in dgvHorarios.Rows)
                    {
                        iIdHorarioGrid = Convert.ToInt32(row.Cells[0].Text);
                        CheckBox chkSeleccion = row.FindControl("chkSeleccionar") as CheckBox;
                        chkSeleccion.Checked = false;

                        for (int i = 0; i < dtConsulta.Rows.Count; i++)
                        {
                            iIdHorarioConsulta = Convert.ToInt32(dtConsulta.Rows[0][1].ToString());
                            iHabilitado = Convert.ToInt32(dtConsulta.Rows[0][2].ToString());

                            if (iIdHorarioConsulta == iIdHorarioGrid)
                            {
                                if (iHabilitado == 1)
                                {
                                    chkSeleccion.Checked = true;
                                    break;
                                }
                            }

                        }
                    }

    "NO  PUEDO CAMBIAR EL ESTADO DEL CHECKED DE LAS FILAS"

    Gracias por la ayuda.

    viernes, 8 de febrero de 2019 20:14

Todas las respuestas

  • hola

    Si pones un breakpoint en el codigo, la ejecucion pasa por el Checked = true; ?

    podrias hacer mas simple el codigo si usas linq

    foreach(GridViewRow row in dgvHorarios.Rows)
    {
    	int iIdHorarioGrid = Convert.ToInt32(row.Cells[0].Text);
    	CheckBox chkSeleccion = row.FindControl("chkSeleccionar") as CheckBox;
    	chkSeleccion.Checked = false;
    
    	var row = dtConsulta.AsEnumerable()
    			    .FirstOrDefault(r=> r.Field<int>("IdHorarioConsulta") == iIdHorarioGrid)
    					        && r.Field<int>("Habilitado") == 1);
    	
    	if(row != null)
    	{
    		chkSeleccion.Checked = true;
    	}
    	
    } 

    si hay coincidencia marcas el check

    Valida si los nombres de las columnas que use son las correctas

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 8 de febrero de 2019 20:59