ASP.NET - Recuperar valor de checkbox de una tabla asp.net al hacer postback

 
Vista:

Recuperar valor de checkbox de una tabla asp.net al hacer postback

Publicado por chikiya (1 intervención) el 15/02/2013 16:34:11
Buenas tardes,
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.

1
2
3
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.


1
2
3
4
5
6
7
8
9
10
11
12
13
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...

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Ella Ilona

Recuperar valor de checkbox de una tabla asp.net al hacer postback

Publicado por Ella Ilona (3 intervenciones) el 18/02/2013 00:04:48
Ante todos se debe consultar el codigo HTML generado (en caso de Internet Explorer se utiliza la tecla F12). El servidor identifica cada el objeto por su atributo NAME.

Por ejemplo si quiero manipular el contenido de un objeto Label, utilizo este codigo en el evento Page_Load o OnClick...

Label obj = (Label)Page.FindControl("myusercontrol1$mycompanyname");
obj.Text = companydata[3];

Si el objeto habia sido generado por codigo JavaScript, se necesita utilizar también codigo JavaScript para consultar los atributos del objeto por una funcción llamado por OnClientClick.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Recuperar valor de checkbox de una tabla asp.net al hacer postback

Publicado por chikiya (1 intervención) el 18/02/2013 08:25:45
Gracias por la respuesta Ella llona, todo eso ya lo he probado, mi problema es que cuando llego al Page_Load, el objeto table ya está null.
No pasa lo mismo con los textbox o los label, que sí persisten en el postback.
El objeto no es generado por javascript, es una tabla creada estáticamente en el formulario y rellenada en tiempo de ejecución con unos datos que el usuario introduce.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Ella Ilona

Recuperar valor de checkbox de una tabla asp.net al hacer postback

Publicado por Ella Ilona (3 intervenciones) el 18/02/2013 23:24:45
Por favor verifique si EnableViewState es configurado con valor TRUE para los controles que llevan el checkbox.

Has considerado esto también?

...Page_Load...
...................
if (!IsPostBack)
{
// el codigo necesario cuando el usuario abre el formulario
}
else
{
// el codigo necesario cuando pasa un post-back
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Recuperar valor de checkbox de una tabla asp.net al hacer postback

Publicado por @pochocosta (1 intervención) el 31/10/2013 00:54:17
Los controles que creas dinamicamente tienes que crearlos en el evento Page_Init, con eso se deberia solucionar tu problema.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar