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

[SOLUCIONADO] checkbox en tabla HTML creada dinámicamente

Estas en el tema de checkbox en tabla HTML creada dinámicamente en el foro de ASPX (.net) en Foros del Web. Buenos días, tengo un sitio web en c# que pinta una tabla como respuesta a un evento click de un botón. Esta tabla contiene en ...
  #1 (permalink)  
Antiguo 15/02/2013, 03:45
Avatar de chikiya  
Fecha de Ingreso: mayo-2006
Mensajes: 46
Antigüedad: 17 años, 11 meses
Puntos: 0
Exclamación checkbox en tabla HTML creada dinámicamente

Buenos días,
tengo un sitio web en c# que pinta una tabla como respuesta a un evento click de un botón. Esta tabla contiene en cada celda un checkbox. A cada checkbox le asigno dinámicamente un ID diferente.

Código:
            chk = new CheckBox();
            chk.Text = "Asociar";
            chk.ID = "chk" + i;
La tabla la defino estática en el form, pero los datos los relleno dinámicamente.

Código:
                        celda = new TableCell();
                        nomImg = new Label();
                        nomImg.Text = conPuntos;
                        botones = new Table();
                        celda.Controls.Add(botones);
                                                
                        celda2 = new TableCell();
                        celda2.Controls.Add(chk);
                        fila2 = new TableRow();
                        fila2.Cells.Add(celda2);
                        botones.Rows.Add(fila2);

                        fila.Cells.Add(celda);
Luego tengo un nuevo button que pretendo que almacene los valores de aquellas celdas en las que el checkbox esté marcado.

Hasta aquí todo ok, mi problema empieza cuando quiero recuperar los valores de cada uno de esos checkbox...

El primer problema es el método donde recorrer la tabla, ya que cuando hago click en el botón ya he perdido los datos de la tabla... :( ¿En qué evento puedo recorrer la tabla?
Y el segundo problema es recuperar el valor de ese checkbox, aunque imagino que solucionando mi primer problema, podré recuperar el valor para cada celda con un controls[i] o similar.

Si pudierais ayudarme...

Muchas gracias
__________________

La belleza verdadera es la de las almas buenas

Última edición por chikiya; 15/02/2013 a las 05:52
  #2 (permalink)  
Antiguo 18/02/2013, 04:43
Avatar de chikiya  
Fecha de Ingreso: mayo-2006
Mensajes: 46
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: checkbox en tabla HTML creada dinámicamente

Solución:

Pinto la tabla siempre en el Page_Load.

En el Page_PreRenderComplete:
Código:
        CheckBox cb;
        Table tb;
        foreach (TableRow row in tabla2.Rows)
        {
            foreach (TableCell cell in row.Cells)
            {
                foreach (Control elem in cell.Controls)
                {
                    tb = new Table();
                    if (elem.GetType().Equals(tb.GetType())){
                        foreach (TableRow row2 in tabla2.Rows)
                        {
                            foreach (TableCell cell2 in row.Cells)
                            {
                                foreach (Control elem2 in cell.Controls)
                                {
                                    cb = new CheckBox();
                                    if (elem.GetType().Equals(cb.GetType()))
                                    {
                                        cb = (CheckBox)elem;
                                        if (cb.Checked == true)
                                        {
                                            //Aqui compruebo todo lo que necesito, en mi caso, almaceno los que están checked
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }                
        }
__________________

La belleza verdadera es la de las almas buenas

Última edición por chikiya; 18/02/2013 a las 05:08

Etiquetas: checkbox, tabla
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 05:59.