Foros del Web » Programación para mayores de 30 ;) » .NET »

La insoportable levedad del checkbox. No, en serio, quiero leer un checkbox y...

Estas en el tema de La insoportable levedad del checkbox. No, en serio, quiero leer un checkbox y... en el foro de .NET en Foros del Web. ...Y no puedo. Esto se parece un poco a otro problema que tuve antes con los Selects. Antes tenía varios Selects en un formulario y ...
  #1 (permalink)  
Antiguo 18/04/2005, 12:11
 
Fecha de Ingreso: abril-2005
Mensajes: 49
Antigüedad: 19 años
Puntos: 0
Pregunta La insoportable levedad del checkbox. No, en serio, quiero leer un checkbox y...

...Y no puedo.

Esto se parece un poco a otro problema que tuve antes con los Selects. Antes tenía varios Selects en un formulario y no podía leer sus valores accediendo a su atributo Value porque lo que veía era el valor original y no lo que había elegido el usuario. Con los Checkboxes me pasa lo mismo, si accedo a su atributo Checked veo su valor original, no registra los cambios.

El problema de los Selects lo solucioné llamando a Response.Form.Get("NombreDelSelect"), pero con un Checkbox no puedo hacer lo mismo. ¿Por qué? Porque no tiene un atributo Name, y cuando pruebo con su ID o con su ClientID, la función Response.Form.Get me devuelve null. ¿Qué tengo que hacer para acceder al valor actual del checkbox?

Gracias,
Gabi.
  #2 (permalink)  
Antiguo 18/04/2005, 12:20
 
Fecha de Ingreso: marzo-2005
Mensajes: 81
Antigüedad: 19 años, 1 mes
Puntos: 0
Que tipo de checkbox es?

De Web forms o de HTML?
si es HTML lo manejas en el servidor (Runatserver=true)

Tus checks tambien los cargas inicialmente con algun valor de tu BD??
  #3 (permalink)  
Antiguo 18/04/2005, 12:25
 
Fecha de Ingreso: abril-2005
Mensajes: 49
Antigüedad: 19 años
Puntos: 0
Son asp:CheckBox que corren en el servidor y se cargan con valores provenientes de la base de datos.
  #4 (permalink)  
Antiguo 18/04/2005, 12:45
 
Fecha de Ingreso: marzo-2005
Mensajes: 81
Antigüedad: 19 años, 1 mes
Puntos: 0
Mira , lo que sucede es que al momento de que das click en tu boton para recoger los valores de tu BD, la pagina llama nuevamente al Page_Load, y cargas tus controles otra vez con los de tu bd.

pon esta linea de codigo en tu Page_Load y me dices

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Page.IsPostBack = True Then Exit Sub
''''tus rutinas, funciones etc.

End Sub


y pudes checar asi el cambio en tu checkbox

If Request.Form("chkbox") = "on" Then
Response.Write("activado")
Else
Response.Write("No activado")
End If
  #5 (permalink)  
Antiguo 18/04/2005, 12:54
 
Fecha de Ingreso: abril-2005
Mensajes: 49
Antigüedad: 19 años
Puntos: 0
Ya probé algo equivalente.
El nombre "chkbox" de tu ejemplo ¿es el ID, el ClientID o alguna otra cosa? Porque con Id y ClientID me devuelve null.
  #6 (permalink)  
Antiguo 18/04/2005, 13:00
 
Fecha de Ingreso: marzo-2005
Mensajes: 81
Antigüedad: 19 años, 1 mes
Puntos: 0
es el ID de mi checkbox.

y no tengo problemas para recuperar su valor. :S

Se me hace raro que a ti te suceda eso.

Mira has la prueba sin llenar el checkbox, o sea dejalo en blanco al inicar tu pagina, y prueba recuperar el valor con el request.
  #7 (permalink)  
Antiguo 18/04/2005, 13:00
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago Chile
Mensajes: 119
Antigüedad: 19 años, 6 meses
Puntos: 0
Para los asp:checkbox yo usaria

If CheckBox1.Checked = True Then
lo que quieras hacer
End If
  #8 (permalink)  
Antiguo 18/04/2005, 13:08
 
Fecha de Ingreso: abril-2005
Mensajes: 49
Antigüedad: 19 años
Puntos: 0
Request.Form.Get("IDDelCheckBox") me da null y IDDelCheckBox.Checked me da el valor que tenía en la base de datos, independientemente de que el usuario lo haya marcado o no. :( Realmente no entiendo lo que pasa.
  #9 (permalink)  
Antiguo 18/04/2005, 13:10
 
Fecha de Ingreso: marzo-2005
Mensajes: 81
Antigüedad: 19 años, 1 mes
Puntos: 0
madanme tu archico aspx.vb y .aspx de tu forma a mi correo para examinarlo

[email protected]
  #10 (permalink)  
Antiguo 18/04/2005, 13:13
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago Chile
Mensajes: 119
Antigüedad: 19 años, 6 meses
Puntos: 0
Sabes no entiendo com le pones un valor al checkbox, y si traes un dato de la base de datos, es solo una fila ???
No te serviria usar un chekboxlist ???
Y pusiste el if not page.ispostoback then
' codigo pagina
end if

????
  #11 (permalink)  
Antiguo 18/04/2005, 13:26
 
Fecha de Ingreso: abril-2005
Mensajes: 49
Antigüedad: 19 años
Puntos: 0
Bueno, lo resolví. Resulta que el atributo Checked sí funciona si no cargo el DataGrid en el Page_Load cuando es PostBack, y no funciona cuando la cargo aun cuando el checkbox se cargaba independientemente. Parece que cargar el DataGrid le daba un valor por defecto aun antes de que el programa leyera el valor que yo quería darle.

Gracias a todos por su tiempo y sus consejos.

Gabi.

PD: esto es una pavada, pero la expresión CheckBox1.Checked = True es equivalente a CheckBox1.Checked.
PD2: era un checkbox para cada fila, dentro de una TemplateColumn.

Última edición por GabiAPF; 18/04/2005 a las 13:32
  #12 (permalink)  
Antiguo 18/04/2005, 13:47
 
Fecha de Ingreso: marzo-2005
Mensajes: 81
Antigüedad: 19 años, 1 mes
Puntos: 0
que bueno que ya quedo
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 12:33.