SSRSレポートの作成を担当する機能があります。ユーザーがボタンを押すと、私は外に出てデータがあるかどうかを確認します。データがない場合は、NODATAメッセージを表示します。データがある場合は、新しいウィンドウで開きたいSSRSレポートを呼び出します。これを実現するには、JavaScript関数を使用するのが最善の方法だと思いました。これはどのように行われますか、または何をお勧めしますか?前もって感謝します!
<script type="text/javascript">
function openWindow(url) {
document.forms[0].target = "_blank";
}
</script>
これを試して:
System.Web.UI.ScriptManager.RegisterClientScriptBlock(Page, GetType(Page), "Script", "openWindow(url);", True)
ClientScriptManager.RegisterClientScriptBlock
メソッドの使用を検討してください。これは静的メソッドであり、ページで使用できるはずです。
使用例は次のとおりです。
Page.ClientScript.RegisterStartupScript(Me.GetType(), "window-script", "openWindow('someUrl')", True)
もちろん、準備したURLをコードの後ろに置くことができます...
それが役に立てば幸い。
ここで覚えておくべきことがあります。vbコードの実行中は、ブラウザのページは存在しません。
Webはhttpプロトコルを介して機能し、httpプロトコルはrequestsおよびresponsesに要約されることに注意してください。常に最初に要求し、次に応答します。多くの場合、応答はhtmlであり、これがvbコードの出番です。すべてのコードとaspxマークアップの唯一の目的は、Webサーバーがhtmlをブラウザーに送り返すことができるようにすることです。ブラウザとサーバーの間にアクティブな接続はありません。 vbコードの実行中は、ブラウザーのWebページは実際には存在しません(コードはコードの作成でビジーです)。 javascriptの実行中、サーバー上でjavascriptを作成するために使用されたvbリソースは、長い間リサイクルされてきました。
サーバー側ロジックの結果に応じてページでJavaScriptを実行しようとしている場合、これを実現する1つの方法は、aspリテラルコントロール(または他のタイプのaspコントロール)を使用することです。
例:
<asp:Literal ID="literalJavascript" runat="server">
function openWindow() { ... }
openWindow();
</asp:Literal>
次に、他のロジックに基づいて、サーバーコードでこのリテラルを表示または非表示にします。