2012-02-10 16 views
5

Mam funkcję, która jest odpowiedzialna za wypełnianie raportu SSRS. Użytkownik naciska przycisk, a ja wychodzę i sprawdzam, czy są dane. Jeśli nie ma danych, udostępniam komunikat NO DATA. Jeśli istnieją dane, nazywam raport SSRS, który chciałbym otworzyć w nowym oknie. Myślałem, że używanie funkcji JavaScript byłoby najlepszym sposobem na osiągnięcie tego. Jak to zrobić lub co poleciłbyś? Z góry dziękuję!ASP.Net VB wywołanie funkcji JavaScript z kodu Behind

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

Odpowiedz

5

Proszę rozważyć użycie metody ClientScriptManager.RegisterClientScriptBlock. Jest to metoda statyczna i powinna być dostępna na twojej stronie.

Przykład użycia jest następujący:

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

oczywiście można umieścić dowolny adres URL, które zostały przygotowane w kodzie za ...

Nadzieję, że to pomaga.

0

Jeśli próbujesz wykonać skrypt na stronie, w zależności od pewnych wyników logiki po stronie serwera, jeden sposób można osiągnąć to za pomocą formantów asp dosłownych (lub inne rodzaje kontroli ASP)

Przykład:

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

    openWindow(); 
</asp:Literal> 

Po prostu pokaż lub ukryj ten literał w kodzie serwera na podstawie innej logiki.

9

Spróbuj tego:

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

Coś aby pamiętać tutaj: natomiast kod VB jest uruchomiony, strona w przeglądarce nie istnieje.

Pamiętaj, że w internecie działa za pośrednictwem protokołu HTTP i protokół http sprowadza się do wniosków i odpowiedzi. Zawsze najpierw żądanie, a następnie odpowiedź. Często odpowiedzią jest html, i tu pojawia się twój kod vb. Jedynym celem całego kodu i znacznika aspx jest to, że twój serwer internetowy może wysłać html z powrotem do przeglądarki. Nie ma aktywnego połączenia między przeglądarką a serwerem. Podczas gdy twój kod VB jest uruchomiony, strona internetowa w przeglądarce naprawdę nie istnieje (twój kod jest zajęty jej tworzeniem). Podczas gdy skrypt javascript jest uruchomiony, a zasoby vb użyte do jego utworzenia na serwerze zostały już dawno poddane recyklingowi.

Powiązane problemy