共用方式為


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>

備註

用戶端腳本是由其索引鍵和其類型唯一識別。 具有相同索引鍵和類型的腳本會被視為重複專案。 只有一個具有指定類型和金鑰組的腳本可以向頁面註冊。 嘗試註冊已註冊的腳本並不會建立腳本的複本。

IsStartupScriptRegistered呼叫 方法,以判斷是否已註冊具有指定索引鍵和類型組的啟動腳本,並避免不必要地嘗試新增腳本。

在這個方法的多 RegisterStartupScript 載中,您必須確定 參數中 script 提供的腳本會以 <script> 元素區塊包裝。

方法所新增的 RegisterStartupScript 腳本區塊會在頁面完成載入,但在引發頁面 OnLoad 事件之前執行。 腳本區塊不保證會依註冊的順序輸出。 如果腳本區塊的順序很重要,請使用 StringBuilder 物件將腳本收集在單一字串中,然後在單一用戶端腳本區塊中註冊它們。

另請參閱

適用於

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>

備註

啟動腳本是由其索引鍵和其類型唯一識別。 具有相同索引鍵和類型的腳本會被視為重複專案。 只有一個具有指定類型和金鑰組的腳本可以向頁面註冊。 嘗試註冊已註冊的腳本並不會建立腳本的複本。

IsStartupScriptRegistered呼叫 方法,以判斷是否已註冊具有指定索引鍵和類型組的啟動腳本,並避免不必要地嘗試新增腳本。

在這個方法的多 RegisterStartupScript 載中,您可以使用 參數來指出參數中 script 提供的腳本是否以 <script> addScriptTags 元素區塊包裝。 設定 addScriptTagstrue 表示會自動新增腳本標記。

方法所新增的 RegisterStartupScript 腳本區塊會在頁面完成載入,但在引發頁面 OnLoad 事件之前執行。 腳本區塊不保證會依註冊的順序輸出。 如果腳本區塊的順序很重要,請使用 StringBuilder 物件將腳本收集在單一字串中,然後在單一用戶端腳本區塊中註冊它們。

另請參閱

適用於