2012-02-10 444 views
5

私はSSRSレポートの作成を担当する関数を持っています。ユーザーがボタンを押すと、データがあるかどうかを確認します。データがない場合、私はNO DATAメッセージを出します。データがある場合は、新しいウィンドウで開きたいSSRSレポートを呼び出します。私は、JavaScript関数を使用してこれを達成する最良の方法だと思った。これはどのように行われるのですか、何をお勧めしますか?前もって感謝します!ASP.Net VBコードからJavaScript関数を呼び出す

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

答えて

5

ClientScriptManager.RegisterClientScriptBlockの方法をご検討ください。それは静的な方法であり、あなたのページで利用できるはずです。使い方の

例は以下の通りです:あなたはあなたの後ろにあなたのコード内で準備した任意のURLを置くことができますもちろん

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

...

はそれがお役に立てば幸いです。

0

あなたはサーバー側のロジックのいくつかの結果に応じて、ページ上でJavaScriptを実行しようとしている場合、あなたはこれを達成できる一つの方法は、ASPリテラルコントロール(またはASPのコントロールの他のタイプ)を使用している

例:

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

    openWindow(); 
</asp:Literal> 

次に、このリテラルを他のロジックに基づいてサーバーコードに表示または非表示にします。

9

これを試してみてください:ここで心に留めておくべき

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

何かを:あなたのVBのコードが実行されている間、ブラウザでページが存在しません。

は、ウェブは、HTTPプロトコルを介して動作し、HTTPプロトコルを要求応答に沸くことを覚えておいてください。常に最初にリクエストし、次にレスポンスが続きます。多くの場合、レスポンスはhtmlで、これはあなたのVBコードが入る場所です。すべてのコードとaspxマークアップの唯一の目的は、Webサーバーがhtmlをブラウザに返すことができるようにすることです。ブラウザとサーバーの間にアクティブな接続はありません。あなたのVBコードが実行されている間、あなたのブラウザのWebページは実際には存在しません(あなたのコードは作成中です)。あなたのjavascriptが実行されている間、サーバー上でそれを作成するために使用されたvbリソースは、その後、リサイクルされています。

関連する問題