ClientScriptManager.RegisterStartupScript メソッド

定義

スタートアップ スクリプトを Page オブジェクトに登録します。

オーバーロード

RegisterStartupScript(Type, String, String)

型、キー、およびスクリプト リテラルを使用して、Page オブジェクトにスタートアップ スクリプを登録します。

RegisterStartupScript(Type, String, String, Boolean)

型、キー、スクリプト リテラル、およびスクリプト タグを追加するかどうかを示すブール値を使用して、スタートアップ スクリプを Page オブジェクトに登録します。

RegisterStartupScript(Type, String, String)

型、キー、およびスクリプト リテラルを使用して、Page オブジェクトにスタートアップ スクリプを登録します。

public:
 void RegisterStartupScript(Type ^ type, System::String ^ key, System::String ^ script);
public void RegisterStartupScript (Type type, string key, string script);
member this.RegisterStartupScript : Type * string * string -> unit
Public Sub RegisterStartupScript (type As Type, key As String, script As String)

パラメーター

type
Type

登録するスタートアップ スクリプの型。

key
String

登録するスタートアップ スクリプトのキー。

script
String

登録するスタートアップ スクリプ リテラル。

次のコード例では、このメソッドの使用方法を RegisterStartupScript 示します。 開始と終了のスクリプト タグがパラメーター内に含まれていることに script 注意してください。 追加のパラメーター設定に基づいてスクリプト タグを追加するには、メソッドを RegisterStartupScript 参照してください。

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
  public void Page_Load(Object sender, EventArgs e)
  {
    // Define the name and type of the client scripts on the page.
    String csname1 = "PopupScript";
    Type cstype = this.GetType();
        
    // Get a ClientScriptManager reference from the Page class.
    ClientScriptManager cs = Page.ClientScript;

    // Check to see if the startup script is already registered.
    if (!cs.IsStartupScriptRegistered(cstype, csname1))
    {
        StringBuilder cstext1 = new StringBuilder();
        cstext1.Append("<script type=text/javascript> alert('Hello World!') </");
        cstext1.Append("script>");

        cs.RegisterStartupScript(cstype, csname1, cstext1.ToString());
    }
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>RegisterStartupScript</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
    </div>
    </form>
</body>
</html>
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    Public Sub Page_Load(ByVal sender As [Object], ByVal e As EventArgs)
        ' Define the name and type of the client scripts on the page. 
        Dim csname1 As [String] = "PopupScript"
        Dim cstype As Type = Me.[GetType]()
    
        ' Get a ClientScriptManager reference from the Page class. 
        Dim cs As ClientScriptManager = Page.ClientScript
    
        ' Check to see if the startup script is already registered. 
        If Not cs.IsStartupScriptRegistered(cstype, csname1) Then
            Dim cstext1 As New StringBuilder()
            cstext1.Append("<script type=text/javascript> alert('Hello World!') </")
            cstext1.Append("script>")
        
            cs.RegisterStartupScript(cstype, csname1, cstext1.ToString())
        End If
    End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>RegisterStartupScript</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
    </div>
    </form>
</body>
</html>

注釈

クライアント スクリプトは、キーとその型によって一意に識別されます。 同じキーと型を持つスクリプトは重複と見なされます。 特定の型とキーのペアを持つスクリプトを 1 つだけページに登録できます。 既に登録されているスクリプトを登録しようとしても、スクリプトの複製は作成されません。

メソッドを IsStartupScriptRegistered 呼び出して、特定のキーと型のペアを持つスタートアップ スクリプトが既に登録されているかどうかを確認し、スクリプトの追加を不必要に試みないようにします。

このメソッドの RegisterStartupScript オーバーロードでは、パラメーターで script 指定されたスクリプトが要素ブロックでラップされていることを確認する <script> 必要があります。

メソッドによって追加されたスクリプト ブロックは、 RegisterStartupScript ページの読み込みが完了したときに、ページの OnLoad イベントが発生する前に実行されます。 スクリプト ブロックが登録された順序で出力されるとは限りません。 スクリプト ブロックの順序が重要な場合は、オブジェクトを StringBuilder 使用してスクリプトを 1 つの文字列にまとめ、それらをすべて 1 つのクライアント スクリプト ブロックに登録します。

こちらもご覧ください

適用対象

RegisterStartupScript(Type, String, String, Boolean)

型、キー、スクリプト リテラル、およびスクリプト タグを追加するかどうかを示すブール値を使用して、スタートアップ スクリプを Page オブジェクトに登録します。

public:
 void RegisterStartupScript(Type ^ type, System::String ^ key, System::String ^ script, bool addScriptTags);
public void RegisterStartupScript (Type type, string key, string script, bool addScriptTags);
member this.RegisterStartupScript : Type * string * string * bool -> unit
Public Sub RegisterStartupScript (type As Type, key As String, script As String, addScriptTags As Boolean)

パラメーター

type
Type

登録するスタートアップ スクリプの型。

key
String

登録するスタートアップ スクリプトのキー。

script
String

登録するスタートアップ スクリプ リテラル。

addScriptTags
Boolean

スクリプト タグを追加するかどうかを示すブール値。

例外

typenullです。

次のコード例では、このメソッドの使用方法を RegisterStartupScript 示します。 パラメーターは addScriptTags 、開始と終了のスクリプト タグがパラメーターに含まれるように設定 false されていることに script 注意してください。

<%@ Page Language="C#"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
  public void Page_Load(Object sender, EventArgs e)
  {
    // Define the name and type of the client scripts on the page.
    String csname1 = "PopupScript";
    String csname2 = "ButtonClickScript";
    Type cstype = this.GetType();
        
    // Get a ClientScriptManager reference from the Page class.
    ClientScriptManager cs = Page.ClientScript;

    // Check to see if the startup script is already registered.
    if (!cs.IsStartupScriptRegistered(cstype, csname1))
    {
      String cstext1 = "alert('Hello World');";
      cs.RegisterStartupScript(cstype, csname1, cstext1, true);
    }

    // Check to see if the client script is already registered.
    if (!cs.IsClientScriptBlockRegistered(cstype, csname2))
    {
      StringBuilder cstext2 = new StringBuilder();
      cstext2.Append("<script type=\"text/javascript\"> function DoClick() {");
      cstext2.Append("Form1.Message.value='Text from client script.'} </");
      cstext2.Append("script>");
      cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), false);
    }
  }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>ClientScriptManager Example</title>
  </head>
  <body>
     <form id="Form1"
         runat="server">
        <input type="text" id="Message" /> <input type="button" value="ClickMe" onclick="DoClick()" />
     </form>
  </body>
</html>
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

    ' Define the name and type of the client scripts on the page.
    Dim csname1 As String = "PopupScript"
    Dim csname2 As String = "ButtonClickScript"
    Dim cstype As Type = Me.GetType()
    
    ' Get a ClientScriptManager reference from the Page class.
    Dim cs As ClientScriptManager = Page.ClientScript

    ' Check to see if the startup script is already registered.
    If (Not cs.IsStartupScriptRegistered(cstype, csname1)) Then
      
      Dim cstext1 As String = "alert('Hello World');"
      cs.RegisterStartupScript(cstype, csname1, cstext1, True)
      
    End If
    
    ' Check to see if the client script is already registered.
    If (Not cs.IsClientScriptBlockRegistered(cstype, csname2)) Then
      
      Dim cstext2 As New StringBuilder()
            cstext2.Append("<script type=""text/javascript""> function DoClick() {")
      cstext2.Append("Form1.Message.value='Text from client script.'} </")
      cstext2.Append("script>")
      cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), False)
      
    End If
    
  End Sub
  
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>ClientScriptManager Example</title>
  </head>
  <body>
     <form id="Form1"
         runat="server">
        <input type="text" id="Message" /> <input type="button" value="ClickMe" onclick="DoClick()" />
     </form>
  </body>
</html>

注釈

スタートアップ スクリプトは、そのキーとその型によって一意に識別されます。 同じキーと型を持つスクリプトは重複と見なされます。 特定の型とキーのペアを持つスクリプトを 1 つだけページに登録できます。 既に登録されているスクリプトを登録しようとしても、スクリプトの複製は作成されません。

メソッドを IsStartupScriptRegistered 呼び出して、特定のキーと型のペアを持つスタートアップ スクリプトが既に登録されているかどうかを確認し、スクリプトの追加を不必要に試みないようにします。

このメソッドのRegisterStartupScriptオーバーロードでは、パラメーターで指定されたスクリプトが、パラメーターをscript使用してaddScriptTags要素ブロックで<script>ラップされているかどうかを示すことができます。 trueスクリプト タグが自動的に追加されることを示す設定addScriptTags

メソッドによって追加されたスクリプト ブロックは、 RegisterStartupScript ページの読み込みが完了したときに、ページの OnLoad イベントが発生する前に実行されます。 スクリプト ブロックが登録された順序で出力されるとは限りません。 スクリプト ブロックの順序が重要な場合は、オブジェクトを StringBuilder 使用してスクリプトを 1 つの文字列にまとめ、それらをすべて 1 つのクライアント スクリプト ブロックに登録します。

こちらもご覧ください

適用対象