2011-04-03 20 views
12

Necesito abrir una pestaña del navegador a partir de un enlace que me proporciona un código asp.net detrás. Normalmente tendré un enlace y target="_blank", pero el enlace que necesito es dinámico, así que debo tener el comportamiento de un enlace _blank desde el código.ASP.Net Abrir nueva pestaña en el navegador de CodeBehind

¿Alguna idea?

Respuesta

23

Si usted tiene los datos necesarios para crear el enlace al generar el código HTML inicial, se puede hacer algo como esto en el evento Page_Load:

protected void Page_Load(object sender, EventArgs e) 
{ 
    Button1.OnClientClick="javascript:window.open('MyPage.aspx?Param=" + Param1.ToString() + "');";   } 
} 

Si usted está esperando la devolución de datos para obtener la requerida datos para construir el enlace, puede enviar Javascript al navegador a través del ScriptManager:

protected void Button1_Click(object sender, EventArgs e) 
{ 
    //process whatever you need to to get Param1 
    ScriptManager.RegisterStartupScript(Page, typeof(Page), "OpenWindow", "window.open('MyPage.aspx?Param=" + Param1.ToString() + "');",true); 
} 
+0

Hola, James, qué pasaría si quiero para abrir esto en una nueva pestaña? Por favor, ayuda – BNN

+0

Me salvó el día. ¡Gracias! –

0

Está buscando Target property.

+0

No, usted me entendió ... No tengo un enlace. Tengo un ASP normal: Botón y en CodeBehind tengo muchos ToDos (DB Query, etc.). Después de terminar, debo abrir un enlace en una nueva pestaña. – Kovu

+0

Luego debe emitir una llamada de Javascript a 'window.open' – SLaks

+0

Obténgalo, gracias :) – Kovu

Cuestiones relacionadas