Udostępnij za pośrednictwem


ClientScriptManager.RegisterStartupScript Metoda

Definicja

Rejestruje skrypt uruchamiania w Page obiekcie .

Przeciążenia

RegisterStartupScript(Type, String, String)

Rejestruje skrypt uruchamiania z Page obiektem przy użyciu typu, klucza i literału skryptu.

RegisterStartupScript(Type, String, String, Boolean)

Rejestruje skrypt uruchamiania z Page obiektem przy użyciu typu, klucza, literału skryptu i wartości logicznej wskazującej, czy dodać tagi skryptu.

RegisterStartupScript(Type, String, String)

Rejestruje skrypt uruchamiania z Page obiektem przy użyciu typu, klucza i literału skryptu.

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)

Parametry

type
Type

Typ skryptu uruchamiania do zarejestrowania.

key
String

Klucz skryptu uruchamiania do zarejestrowania.

script
String

Literał skryptu uruchamiania do zarejestrowania.

Przykłady

W poniższym przykładzie kodu pokazano użycie RegisterStartupScript metody . Należy pamiętać, że tagi skryptu początkowego i zamykającego są uwzględniane w parametrze script . Aby dodać tagi skryptu na podstawie dodatkowego ustawienia parametru, zobacz metodę 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>

Uwagi

Skrypt klienta jest jednoznacznie identyfikowany przez jego klucz i jego typ. Skrypty z tym samym kluczem i typem są traktowane jako duplikaty. Na stronie można zarejestrować tylko jeden skrypt z danym typem i parą kluczy. Próba zarejestrowania skryptu, który jest już zarejestrowany, nie powoduje utworzenia duplikatu skryptu.

Wywołaj metodę , IsStartupScriptRegistered aby określić, czy skrypt startowy z danym kluczem i parą typów jest już zarejestrowany, i unikaj niepotrzebnego próby dodania skryptu.

W tym przeciążeniu RegisterStartupScript metody należy upewnić się, że skrypt podany w parametrze script jest owinięty blokiem <script> elementu.

Blok skryptu dodany przez metodę jest wykonywany po zakończeniu RegisterStartupScript ładowania strony, ale przed wywołaniem zdarzenia strony OnLoad . Nie ma gwarancji, że bloki skryptu będą danymi wyjściowymi w kolejności ich zarejestrowania. Jeśli kolejność bloków skryptu jest ważna, użyj StringBuilder obiektu, aby zebrać skrypty razem w jednym ciągu, a następnie zarejestrować je wszystkie w jednym bloku skryptu klienta.

Zobacz też

Dotyczy

RegisterStartupScript(Type, String, String, Boolean)

Rejestruje skrypt uruchamiania z Page obiektem przy użyciu typu, klucza, literału skryptu i wartości logicznej wskazującej, czy dodać tagi skryptu.

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)

Parametry

type
Type

Typ skryptu uruchamiania do zarejestrowania.

key
String

Klucz skryptu uruchamiania do zarejestrowania.

script
String

Literał skryptu uruchamiania do zarejestrowania.

addScriptTags
Boolean

Wartość logiczna wskazująca, czy należy dodać tagi skryptu.

Wyjątki

type to null.

Przykłady

W poniższym przykładzie kodu pokazano użycie RegisterStartupScript metody . Należy pamiętać, że addScriptTags parametr jest ustawiony na false wartość , aby tagi skryptu początkowego i zamykającego zostały dołączone do parametru 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>

Uwagi

Skrypt uruchamiania jest jednoznacznie identyfikowany przez jego klucz i jego typ. Skrypty z tym samym kluczem i typem są traktowane jako duplikaty. Na stronie można zarejestrować tylko jeden skrypt z danym typem i parą kluczy. Próba zarejestrowania skryptu, który jest już zarejestrowany, nie powoduje utworzenia duplikatu skryptu.

Wywołaj metodę , IsStartupScriptRegistered aby określić, czy skrypt startowy z danym kluczem i parą typów jest już zarejestrowany, i unikaj niepotrzebnego próby dodania skryptu.

W tym przeciążeniu RegisterStartupScript metody można wskazać, czy skrypt podany w parametrze script jest owinięty blokiem <script> elementu przy użyciu parametru addScriptTags . Ustawienie addScriptTags oznacza true , że tagi skryptu zostaną dodane automatycznie.

Blok skryptu dodany przez metodę jest wykonywany po zakończeniu RegisterStartupScript ładowania strony, ale przed wywołaniem zdarzenia strony OnLoad . Nie ma gwarancji, że bloki skryptu będą danymi wyjściowymi w kolejności ich zarejestrowania. Jeśli kolejność bloków skryptu jest ważna, użyj StringBuilder obiektu, aby zebrać skrypty razem w jednym ciągu, a następnie zarejestrować je wszystkie w jednym bloku skryptu klienta.

Zobacz też

Dotyczy