2012-02-10 62 views
5

Tengo una función que es responsable de completar un informe SSRS. El usuario presiona un botón y salgo y verifico si hay datos. Si no hay datos, proporciono un mensaje SIN DATOS. Si hay datos, los llamo al informe de SSRS que me gustaría abrir en una nueva ventana. Pensé que usar una función de JavaScript sería la mejor manera de lograr esto. ¿Cómo se hace esto o qué recomendarías? ¡Gracias por adelantado!ASP.Net Llamada VB función de JavaScript desde código detrás

<script type="text/javascript"> 
     function openWindow(url) { 
      document.forms[0].target = "_blank"; 
     } 
    </script> 

Respuesta

5

Considere el uso del método ClientScriptManager.RegisterClientScriptBlock. Es un método estático y debe estar disponible en tu página.

Ejemplo de uso es el siguiente:

Page.ClientScript.RegisterStartupScript(Me.GetType(), "window-script", "openWindow('someUrl')", True) 

Por supuesto se puede poner cualquier URL que ha preparado en su código detrás ...

espero que ayude.

0

Si usted está tratando de ejecutar código JavaScript en una página en función de algunos resultados de la lógica del lado del servidor, de una manera que podría lograr esto es mediante el uso de controles ASP literales (u otros tipos de controles ASP)

Ejemplo:

<asp:Literal ID="literalJavascript" runat="server"> 
    function openWindow() { ... } 

    openWindow(); 
</asp:Literal> 

Luego solo muestre u oculte este literal en el código de su servidor según su otra lógica.

9

Prueba esto:

System.Web.UI.ScriptManager.RegisterClientScriptBlock(Page, GetType(Page), "Script", "openWindow(url);", True) 
2

Algo a tener en cuenta aquí: mientras que el código de VB se está ejecutando, no existe la página en el navegador.

Recuerde que la web funciona a través del protocolo HTTP y el protocolo http reduce a peticiones y respuestas . Siempre una solicitud primero, seguida de una respuesta. A menudo, la respuesta es html, y aquí es donde entra su código vb. El único propósito de todo el código y el marcado aspx es que su servidor web pueda enviar html al navegador. No hay una conexión activa entre el navegador y su servidor. Mientras su código vb se está ejecutando, la página web en su navegador realmente no existe (su código está ocupado creándola). Mientras su javascript se está ejecutando, y los recursos vb utilizados para crearlo en el servidor se han reciclado hace tiempo.

Cuestiones relacionadas