¿Cómo puedo crear una ventana emergente usando una nueva página como fuente emergente?

Quiero que aparezca un panel cuando se hace clic en un "botón de creación", estoy usando un panel y agregando algunos cuadros de texto y botones dentro del panel. Puedo crear el panel emergente diseñándolo en la misma página donde está presente el botón de creación. ¿Puedo hacer que la ventana emergente aparezca en una página separada y que aparezca cuando hago clic en el botón crear?

preguntado el 27 de agosto de 11 a las 23:08

2 Respuestas

Seguro. Puede crear un iframe y luego establecer la fuente como el panel que está creando.

Digamos que tiene dos páginas html panel.html y main.html

Su panel.html puede ser simplemente

<html>
   <body style="background-color:red">
      Hi!
   </body>
</html>

y tu main.html

    <html>
    <body style="background-color:yellow">
        <iframe src="panel.html" style="height:300px;width:300px;border:0px;display:none;" id="myPanel"></iframe>
        <a href="#" onclick="document.getElementById('myPanel').style.display='block';return false">Show Panel</a>
    </body>
</html>

Esto debería mostrar una página amarilla con un hipervínculo de "Mostrar panel". Al hacer clic en Mostrar panel, se mostrará el iframe de su panel.html.

Si está utilizando ASP.NET MVC, puede hacer esto creando una Vista que se pueda llamar con algún código Ajax / JQuery. Si está buscando algo a lo largo de ese enfoque, puedo publicar un código para eso.

Respondido 28 ago 11, 04:08

Gokul,

Sí, puede colocar el panel en una página separada y hacer que aparezca al hacer clic en el botón Crear. Aquí hay una alternativa (no es mi favorita, pero no depende de nada adicional además de javascript estándar):

  • Al hacer clic en el "botón crear", se abre una nueva ventana del navegador cuyo tamaño se modifica exactamente para que coincida con el tamaño del panel. Esto se puede hacer con javascript fácilmente de la siguiente manera:

    <input onclick = "javascript: window.open ('page.aspx', 'title', 'status = 0, toolbar = 0, width = 350, height = 250');" type = "button" value = "Create" />

  • En la página que apareció que contiene el panel (pagecontainingPanel.aspx, según mi ejemplo), puede tener un código para cerrar la ventana una vez que realice alguna acción. Por ejemplo, si tiene un botón que se supone que guarda algunos datos en la base de datos y regresa a la página principal, podría hacer algo como:

{

  ///Perform server side process. If successfully executed close this window. 
  protected void btnSubmit_Click(object sender, EventArgs e)
  if(EverythingOK) 
        { 
           StringBuilder cstext2 = new StringBuilder();
  cstext2.Append("<script type=\"text/javascript\"> function CloseMe() {");
  cstext2.Append("window.close();} </");
  cstext2.Append("script>");
  cs.RegisterStartupScript(cstype, csname2, cstext2.ToString(), false);
        } 

    }

Respondido 28 ago 11, 04:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.