ASP.NET サーバー処理でJavaScriptを出力する
ASP.NETのサーバー処理でJavaScriptを出力する(埋め込む)方法を紹介します。
例えば、更新処理の後に「更新しました。」のアラートを表示したい場合、アラートを表示するのはサーバー処理でなく、クライアントスクリプト(JavaScript)になります。
そのため、サーバー処理でアラートを表示するJavaScriptを出力する必要があります。
出力方法は以下の2種類があります。
Dim script = "alert('更新しました');" '実行したいJavaScript
ClientScript.RegisterClientScriptBlock(GetType(String), "alert", script, True)
'または
ClientScript.RegisterStartupScript(GetType(String), "alert", script, True)どちらのメソッドも(type, key, script, addScriptTags)の形式で指定します。
type
登録するクライアントスクリプトの型を指定します。
スクリプトは文字列なのでStringの型(GetType(String))を指定します。
key
登録するクライアントスクリプトのキーを指定します。
このメソッドを複数回実行する場合、キーの値を同じにした場合は後から実行したスクリプトに上書きされます。
両方のスクリプトを実行したい場合はキーが一意になるように設定する必要があります。
script
登録するクライアントスクリプトを指定します。
実際に実行したいJavaScriptを文字列で指定します。
addScriptTags
スクリプトタグを追加するかどうかをBooleanで設定します。
Trueの場合は、scriptが<script>, </script>で囲われます。
Falseの場合は、scriptが<script>, </script>で囲われないため、scriptに手動でスクリプトタグを設定する必要があります。
このパラメータは省略可能です。省略した場合はFalseとして処理されます。
RegisterClientScriptBlockとRegisterStartupScriptの違いについてはASP.NET RegisterClientScriptBlockとRegisterStartupScriptの違いで紹介しています。