次の方法で共有


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 ファミリ

参照

Page クラス | Page メンバ | System.Web.UI 名前空間