Quiero hacer una, Response.Redirect("MyPage.aspx")
pero abrirla en una nueva ventana del navegador. He hecho esto antes sin usar el método de secuencia de comandos de registro de JavaScript. ¿No puedo recordar cómo?
c#
asp.net
response.redirect
hims056
fuente
fuente
OnClientClick="aspnetForm.target ='_blank';"
tener que usarOnClientClick="document.getElementById('Form').target ='_blank';"
Puedes usar esto como método de extensión
Con esto, obtiene una buena anulación del objeto de respuesta real
fuente
Debido a que Response.Redirect se inicia en el servidor, no puede hacerlo usando eso.
Si puede escribir directamente en el flujo de respuesta, puede intentar algo como:
fuente
Construya su URL a través del controlador de eventos de clic:
Luego:
fuente
El truco de fixform es genial, pero:
Es posible que no tenga acceso al código de lo que se carga en la nueva ventana.
Incluso si lo hace, depende del hecho de que siempre se carga, sin errores.
Y depende del hecho de que el usuario no hará clic en otro botón antes de que la otra página tenga la oportunidad de cargar y ejecutar fixform.
Sugeriría hacer esto en su lugar:
Y configure fixform en la misma página , con este aspecto:
fuente
También puede usar en el código subyacente de esta manera
fuente
window.open('page.aspx','_blank');
, todavía lo abre en una nueva ventana con la barra de navegación deshabilitada y faltan los botones de navegación en lugar de una nueva pestaña.Esto no es posible con Response.Redirect, ya que sucede en el lado del servidor y no puede indicarle a su navegador que realice esa acción. ¿Qué quedaría en la ventana inicial? ¿Una página en blanco?
fuente
El método emergente le dará una pregunta segura al visitante.
aquí está mi solución simple: y trabajando en todas partes.
fuente
Fuente: http://dotnetchris.wordpress.com/2008/11/04/c-aspnet-responseredirect-open-into-new-window/
fuente
Si puede reestructurar su código para que no necesite la devolución, puede usar este código en el evento PreRender del botón:
fuente
También puede usar el siguiente código para abrir una nueva página en una nueva pestaña.
Y simplemente llame a Response.Redirect ("yourPage.aspx"); evento de botón detrás.
fuente
Siempre uso este código ... Use este código
fuente
Aquí hay una versión de jQuery basada en la respuesta de @takrl y @tom arriba. Nota: sin formid codificado (llamado aspnetForm arriba) y tampoco utiliza referencias directas de form.target que Firefox puede encontrar problemáticas:
Luego, en su archivo js al que se hace referencia en la MISMA página:
fuente
Usé Hyperlink en lugar de LinkButton y funcionó bien, tiene la propiedad Target, por lo que resolvió mi problema. Estaba la solución con Response.Write, pero eso estaba arruinando mi diseño, y el de ScriptManager, en cada actualización o retroceso, estaba reabriendo la ventana. Así que así es como lo resolví:
fuente
Es posible que desee utilizar Page.RegisterStartupScript para asegurarse de que el javascript se activa al cargar la página.
fuente
puede abrir una nueva ventana desde el código asp.net detrás usando ajax como lo hice aquí http://alexandershapovalov.com/open-new-window-from-code-behind-in-aspnet-68/
fuente
Ninguno de los ejemplos anteriores funcionó para mí, así que decidí publicar mi solución. En los eventos de clic de botón, aquí está el código subyacente.
Tenía que modificar el código response.redirect de otra persona para abrirlo en un nuevo navegador.
fuente
Usé este enfoque, no requiere que hagas nada en la ventana emergente (a la que no tuve acceso porque estaba redirigiendo a un archivo PDF). También usa clases.
Para usar, agregue la clase "nueva ventana" a cualquier elemento. No es necesario agregar nada a la etiqueta del cuerpo. Esta función configura la nueva ventana y la fija en la misma función.
fuente
Hice esto poniendo target = "_ blank" en el botón de enlace
luego, en el código subyacente de carga de la página, simplemente configure el atributo href:
fuente
HTML
Javascript:
Y código subyacente:
fuente