Page.RegisterStartupScript メソッド
ASP.NET サーバー コントロールが Page のクライアント側のスクリプト ブロックを出力できるようにします。
Public Overridable Sub RegisterStartupScript( _
ByVal key As String, _ ByVal script As String _)
[C#]
public virtual void RegisterStartupScript(stringkey,stringscript);
[C++]
public: virtual void RegisterStartupScript(String* key,String* script);
[JScript]
public function RegisterStartupScript(
key : String,script : String);
パラメータ
- key
スクリプト ブロックを識別する一意のキー。 - script
クライアントに送られるスクリプトの内容。
解説
このメソッドは、 RegisterClientScriptBlock メソッドに似ており、 Page オブジェクトの <form runat= server> 要素の終了タグの直前にスクリプトを出力します。スクリプト ブロックは、ページを表示するオブジェクトが定義されると出力されるため、<script> 要素の両方のタグを含める必要があります。
スクリプトを key で識別することにより、複数のサーバー コントロール インスタンスは、出力ストリームに 2 回出力せずにスクリプト ブロックを要求できます。
同じ key パラメータ値のスクリプト ブロックは、重複であると見なされます。
メモ 要求側のブラウザがスクリプトをサポートしていない場合にスクリプトが表示されないように、HTML コメント タグでスクリプトを囲んでおいてください。
使用例
[Visual Basic, C#] IsStartupScriptRegistered メソッドと共に RegisterStartupScript メソッドを使用する例を次に示します。コード宣言ブロックに書き込まれた ECMAScript がまだ登録されていないことが IsStartupScriptRegistered によるチェックで判明した場合は、 RegisterStartupScriptBlock 呼び出しが実行されます。
<html>
<head>
<script language="VB" runat="server">
public Sub Page_Load(Sender As Object,e As EventArgs)
' Form the script to be registered at client side.
Dim scriptString As String = "<script language=JavaScript> function DoClick() {"
scriptString += "showMessage2.innerHTML='<h4>Welcome to Microsoft .NET!</h4>'}"
scriptString += "function Page_Load(){ showMessage1.innerHTML="
scriptString += "'<h4>RegisterStartupScript Example</h4>'}<"
scriptString += "/"
scriptString += "script>"
If(Not Me.IsStartupScriptRegistered("Startup")) Then
Me.RegisterStartupScript("Startup", scriptString)
End If
End Sub
</script>
</head>
<body topmargin="20" leftmargin="10" onload="Page_Load()">
<form id="myForm" runat="server">
<span id="showMessage1"></span>
<br>
<input type="button" value="ClickMe" onclick="DoClick()">
<br>
<span id="showMessage2"></span>
</form>
</body>
</html>
[C#]
<html>
<head>
<script language="C#" runat="server">
public void Page_Load(Object sender, EventArgs e) {
// Form the script to be registered at client side.
String scriptString = "<script language=JavaScript> function DoClick() {";
scriptString += "showMessage2.innerHTML='<h4>Welcome to Microsoft .NET!</h4>'}";
scriptString += "function Page_Load(){ showMessage1.innerHTML=";
scriptString += "'<h4>RegisterStartupScript Example</h4>'}<";
scriptString += "/";
scriptString += "script>";
if(!this.IsStartupScriptRegistered("Startup"))
this.RegisterStartupScript("Startup", scriptString);
}
</script>
</head>
<body topmargin="20" leftmargin="10" onload="Page_Load()">
<form id="myForm" runat="server">
<span id="showMessage1"></span>
<br>
<input type="button" value="ClickMe" onclick="DoClick()">
<br>
<span id="showMessage2"></span>
</form>
</body>
</html>
[C++, JScript] C++ および JScript のサンプルはありません。Visual Basic および C# のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 2000, Windows XP Professional, Windows Server 2003 ファミリ