方法 : ASP.NET Web ページにクライアント スクリプトを動的に追加する
更新 : 2007 年 11 月
サーバー コードを使用すると、クライアント スクリプトをページに追加できます。サーバー コードでクライアント スクリプトを作成する方法は、クライアント スクリプトの内容が実行時まで使用できない情報に依存する場合に便利です。クライアント スクリプトをページに動的に追加する方法は、クライアント スクリプトを次のような状況で実行する場合に便利です。
ページの読み込みが終了している場合
ユーザーがページを送信する場合
メモ : onmouseover、onkeyup などのクライアント イベントを個々のコントロールに追加することもできます。詳細については、「方法 : ASP.NET Web サーバー コントロールにクライアント スクリプト イベントを追加する」を参照してください。
クライアント スクリプトを ASP.NET Web ページに動的に追加するには
サーバー コードで、次の表に記載されているメソッドのいずれかを呼び出します。
メソッド
説明
スクリプトのブロックをページの先頭に追加します。スクリプトを文字列として作成してページに追加するメソッドに渡します。このメソッドを使用すると、任意のスクリプトをページに挿入できます。ページのすべての要素の処理が完了する前にスクリプトがレンダリングされることがあり、スクリプトからページの要素を参照できない場合もあることに注意してください。
RegisterClientScriptBlock メソッドと同様ですが、外部の .js ファイルを参照するスクリプト ブロックを追加します。インクルード ファイルは、動的に追加されるその他のすべてのスクリプトより前に追加されるため、ページの一部の要素を参照できない場合があります。
実行するスクリプト ブロックは、ページが読み込みを完了し、ページの onload イベントが発生する前に追加します。このスクリプトは、一般にイベント ハンドラまたは関数としては作成されず、一度だけ実行するステートメントのみを含みます。
ページの onsubmit イベントに応答して実行されるスクリプトを追加します。このスクリプトはページが送信される前に実行されるため、送信を取り消す機会として利用することもできます。
ページをサーバーにポストバックするボタンをユーザーがクリックすると実行されるページにクライアント スクリプトを追加する方法のコード例を次に示します。このクライアント スクリプトは、ユーザーにポストバックを確認するように求めるポップアップ ウィンドウを表示します。
Protected Sub Page_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) Dim scriptText As String scriptText = "return confirm('Do you want to submit the page?')" ClientScript.RegisterOnSubmitStatement(Me.GetType(), _ "ConfirmSubmit", scriptText) End Sub
protected void Page_Load(Object sender, EventArgs e)
{
String scriptText =
"return confirm('Do you want to submit the page?')";
ClientScript.RegisterOnSubmitStatement(this.GetType(),
"ConfirmSubmit", scriptText);
}
参照
処理手順
方法 : ASP.NET Web サーバー コントロールにクライアント スクリプト イベントを追加する