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

Activar panel con visible=false

Estas en el tema de Activar panel con visible=false en el foro de .NET en Foros del Web. Hola a todos! Estoy programando con ASP.NET en codigo VB.. bueno mi problem es este: tengo en la parte superior de mi pagina una botonera ...
  #1 (permalink)  
Antiguo 04/03/2005, 15:43
Avatar de Rony J.  
Fecha de Ingreso: noviembre-2004
Ubicación: Maracay - Vzla
Mensajes: 223
Antigüedad: 19 años, 5 meses
Puntos: 0
Pregunta Activar panel con visible=false

Hola a todos!
Estoy programando con ASP.NET en codigo VB.. bueno mi problem es este: tengo en la parte superior de mi pagina una botonera que, al hacer click en cualquiera de los botones este debe activar un panel y desactivar a otros(Para simular un Page como el de VB 6.0 y VFP 6.0).. se me entiende? Por ejemplo cuando hago clic en un boton llamo a un sub que recibe por parametro el nombre del panel que debe activar, por ejemplo si recibe "Panel1" entons el sub haria esto:

Panel1.Visible = True
Panel2.Visible = False
Panel3.Visible = False

Esto lo hago en el .vb de mi pagina, lo cierto es que necesito activar un panel al hacer click en un checkbox pero quiero hacerlo sin que me recarge la pagina
Pudiera colocar la propiedad AutoPostBack del check en true y en el selectedindexchanged llamar al sub q les conte pero esto implicaria que mi pagina recargaria y como les dije es esto lo que quiero evitar

He intentado hacer con JavaScript algo asi:
document.getElementById("MyDiv").style.visibility = "visible"; Esto para activar al panel que deseo y funciona perfectamente, la cosa me da error es cuando el panel que quiero activar previamente lo habia hecho visible en false a través del sub q les cont , cuando es asi me da un erro diciendo "se requiere un objeto"

Alguna idea de como puedo arreglar esto?
__________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. Albert Einstein
  #2 (permalink)  
Antiguo 05/03/2005, 02:19
 
Fecha de Ingreso: marzo-2004
Ubicación: Valencia
Mensajes: 367
Antigüedad: 20 años, 1 mes
Puntos: 1
Cuando haces el panel no visible con el sub que dices la página que te llega del postback ya no tiene el panel que hayas puesto no visible, es decir, que el panel (las etiquetas <DIV id="MyDiv"></DIV>) ya no están, no es que tenga la propiedad visible a false, por eso cuando intentas obtener ese div con document.getElementById("MyDiv") te dice que se esperaba un objeto, porque cuando lo busca "MyDiv" no existe.
No sé si me he explicado o te he liado más jeje.

La cuestión es que te recomendaría ocultar y hacer visible el panel siempre por javascript o siempre por código con el sub que comentas, a como mucho hacerlo visible por código pero ocultarlo con javascript.

Saludos
  #3 (permalink)  
Antiguo 05/03/2005, 09:49
Avatar de Rony J.  
Fecha de Ingreso: noviembre-2004
Ubicación: Maracay - Vzla
Mensajes: 223
Antigüedad: 19 años, 5 meses
Puntos: 0
Si Scho te entendi, jej jej, bueno me temo que no me queda otra , pos ni modo voy a ver como puedo hacer esto..
Saludos y gracias!
__________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. Albert Einstein
  #4 (permalink)  
Antiguo 05/03/2005, 12:14
 
Fecha de Ingreso: marzo-2004
Ubicación: Valencia
Mensajes: 367
Antigüedad: 20 años, 1 mes
Puntos: 1
También se me ocurre que en el codebehind, para ocultar el panel, en vez de poner
Código:
Panel1.Visible = False
Pongas
Código:
Dim strScript As String = "<script language=javascript> document.getElementById(""Panel1"").style.visibility = 'hidden'; </script>"
RegisterStartupScript("Ocultar", strScript)
Y para volverlo a mostrar
Código:
Dim strScript As String = "<script language=javascript> document.getElementById(""Panel1"").style.visibility = 'visible'; </script>"
RegisterStartupScript("Mostrar", strScript)
Espero que te sirva de algo. Un saludo.

Última edición por Scho; 05/03/2005 a las 12:17
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 13:58.