2012-02-10 31 views
5

Ho una funzione che è responsabile per compilare un rapporto SSRS. L'utente preme un pulsante e io esco e controllo per vedere se ci sono dati. Se non ci sono dati, fornisco un messaggio NO DATA. Se ci sono dati, chiamo il rapporto SSRS che vorrei aprire in una nuova finestra. Pensavo che usare una funzione JavaScript sarebbe il modo migliore per farlo. Come si fa o cosa consiglieresti? Grazie in anticipo!ASP.Net VB chiama la funzione JavaScript dal codice Behind

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

risposta

5

Si prega di considerare utilizzando il metodo ClientScriptManager.RegisterClientScriptBlock. È un metodo statico e dovrebbe essere disponibile sulla tua pagina.

Esempio di utilizzo è la seguente:

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

Naturalmente si può mettere qualsiasi URL che avete preparato nel codice dietro ...

Speranza che aiuta.

0

Se si sta tentando di eseguire JavaScript su una pagina a seconda dei risultati della logica lato server, un modo si potrebbe raggiungere questo obiettivo è quello di utilizzare i controlli asp letterali (o altri tipi di controlli ASP)

Esempio:

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

    openWindow(); 
</asp:Literal> 

Quindi mostrare o nascondere questo valore letterale nel codice server in base all'altra logica.

9

Prova questo:

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

Qualcosa da tenere a mente: mentre il codice vb è in esecuzione, la pagina nel browser non esiste.

ricordare che il web funziona tramite il protocollo HTTP e il protocollo http si riduce a richieste e risposte. Prima sempre una richiesta, seguita da una risposta. Spesso la risposta è html, ed è qui che entra in gioco il tuo codice vb. L'unico scopo di tutto il codice e il markup aspx è che il tuo server web possa inviare html al browser. Non c'è alcuna connessione attiva tra il browser e il tuo server. Mentre il tuo codice VB è in esecuzione, la pagina web del tuo browser non esiste realmente (il tuo codice è occupato a crearlo). Mentre il tuo javascript è in esecuzione, e le risorse vb utilizzate per crearlo sul server sono state da tempo riciclate.

Problemi correlati