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>要素ブロックでラップされているかどうかを示すことができます。 addScriptTagstrue に設定すると、スクリプト タグが自動的に追加されます。

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

こちらもご覧ください

適用対象