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

Cerrar pagina/ventana desde codebehind

Estas en el tema de Cerrar pagina/ventana desde codebehind en el foro de ASPX (.net) en Foros del Web. Hola, tengo una pagina abierta como popup que envia emails. Cuando hago click en el boton enviar, va al code behind y, si hubo un ...
  #1 (permalink)  
Antiguo 01/07/2008, 11:31
 
Fecha de Ingreso: julio-2008
Mensajes: 4
Antigüedad: 15 años, 9 meses
Puntos: 0
Cerrar pagina/ventana desde codebehind

Hola,

tengo una pagina abierta como popup que envia emails. Cuando hago click en el boton enviar, va al code behind y, si hubo un error muestra un cartel, pero si esta todo bien tiene que cerrar la pagina/ventana. Se puede hacer?
Yo intente desde un js hacer __doPostBack y mediante un campo oculto hacer que lo cierre al cambiarle el valor en el codebehind asi:
//mail.aspx
Código:
function send()
{document.getElementById('ctl00_MainContent_hfSend').value = "1"
    __doPostBack("",'')
    if(document.getElementById('ctl00_MainContent_hfSend').value == "2")
    {
        //window.close()
    }
}
//mail.cs
Código:
protected void Page_Load(object sender, EventArgs e)
{
            if (hfSend.Value == "1")
            {
                //Envió
                hfSend.Value = "2";
            }
 }
pero por lo que veo no es que llega a la linea de __doPostBack, de ahi va al servidor y luego vuelve al mismo punto del js. Sino que termina de ejecutar el js y despues va al servidor.

Ideas???
  #2 (permalink)  
Antiguo 01/07/2008, 12:01
 
Fecha de Ingreso: julio-2008
Mensajes: 4
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Cerrar pagina/ventana desde codebehind

acabo de encontrarle una solucion

en el .aspx, como tengo una masterpage utilizo la funcion PageLoad:

Código:
<script>
   function pageLoad() 
   {
    if(document.getElementById('ctl00_MainContent_hfSend').value == "2")
    {
        window.close()
    }
   }
</script>
y tambien tengo un campo oculto para saber si debe cerrar la ventana o no:

Código:
<input type=hidden id="hfSend" runat="server" />
cuando hago click en el boton enviar va al .cs:

Código:
  protected void btnEnviar_Click(object sender, EventArgs e)
        {
            try
            {
                //enviar email
               //si no tuvo errores cambio el valor a 2. Si tuvo error va al catch...
                hfSend.Value = "2";//con este valor cierra la ventana.
            }
            catch(Exception)
            {
            }
        }
y listo. Quiza no sea la mejor pero funciona y me saco del apuro

Última edición por mariowowo; 01/07/2008 a las 12:06
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 14:07.