System.Web.UI


.NET Framework-Klassenbibliothek
ClientScriptManager-Klasse

Hinweis: Diese Klasse ist neu in .NET Framework, Version 2.0.

Definiert Methoden zum Verwalten clientseitiger Skripts in Webanwendungen.

Namespace: System.Web.UI
Assembly: System.Web (in system.web.dll)

Syntax

Visual Basic (Deklaration)
Public NotInheritable Class ClientScriptManager
Visual Basic (Verwendung)
Dim instance As ClientScriptManager
C#
public sealed class ClientScriptManager
C++
public ref class ClientScriptManager sealed
J#
public final class ClientScriptManager
JScript
public final class ClientScriptManager
Hinweise

Die ClientScriptManager-Klasse wird verwendet, um clientseitige Skripts zu verwalten und sie Webanwendungen hinzuzufügen. Sie können einen Verweis auf die ClientScriptManager-Klasse aus der ClientScript-Eigenschaft des Page-Objekts abrufen.

Sie können ein clientseitiges Skript deklarativ zu einer Webseite hinzufügen, indem Sie das Skript in das HTML-Markup der Seite einschließen. Es gibt jedoch auch Situationen, in denen ein dynamisches Hinzufügen eines clientseitigen Skripts erforderlich ist. Um ein Skript dynamisch hinzuzufügen, verwenden Sie – abhängig vom Zeitpunkt und der Art der Skripthinzufügung – die Methode RegisterClientScriptBlock, RegisterClientScriptInclude, RegisterStartupScript oder RegisterOnSubmitStatement. Weitere Informationen finden Sie unter Gewusst wie: Dynamisches Hinzufügen von Clientskripts zu ASP.NET-Webseiten.

Die ClientScriptManager-Klasse identifiziert Skripts eindeutig mithilfe eines Schlüssels String und eines Type. Skripts mit gleichem Schlüssel und Typ gelten als Duplikate. Mithilfe des Skripttyps kann eine mögliche Verwechslung ähnlicher Skripts von unterschiedlichen Benutzersteuerelementen, die möglicherweise für die Seite verwendet werden, vermieden werden.

Die ClientScriptManager-Klasse kann verwendet werden, um Clientrückrufe in Situationen auszuführen, in denen Servercode vom Client ohne ein Postback ausgeführt werden soll. Dies wird als Ausführen eines Out-of-Band-Rückrufs zum Server bezeichnet. In einem Clientrückruf sendet eine Clientskriptfunktion eine asynchrone Anforderung an eine ASP.NET-Webseite. Die Webseite führt eine geänderte Version ihres normalen Lebenszyklus aus, um den Rückruf zu verarbeiten. Verwenden Sie die GetCallbackEventReference-Methode, um einen Verweis auf eine clientseitige Funktion abzurufen, die beim Aufruf einen Clientrückruf für serverseitige Ereignisse initiiert. Weitere Informationen finden Sie unter Implementieren von Clientrückrufen ohne Postbacks in ASP.NET-Webseiten.

HinweisHinweis

Skriptrückrufe können nicht für ältere Browser ausgeführt werden, die das Dokumentobjektmodell (Document Object Model, DOM) nicht unterstützen und ein clientseitig aktiviertes ECMA-Skript benötigen. Mithilfe der SupportsCallback-Eigenschaft können Sie prüfen, ob der Browser eines Clients Rückrufe unterstützt. Auf diese Eigenschaft können Sie über die Browser-Eigenschaft des systeminternen ASP.NET-Request-Objekts zugreifen.

Verwenden Sie die GetPostBackEventReference-Methode und die GetPostBackClientHyperlink-Methode, um ein Clientpostbackereignis zu definieren. Diese Methoden aktivieren clientseitige Skriptfunktionen, durch die der Server beim Aufrufen einen Postback zurück zu dieser Seite auszuführt. Ein Clientpostbackereignis unterscheidet sich von einem Clientrückruf dadurch, dass die Webseite einen normalen Lebenszyklus durchläuft, um das Clientpostbackereignis zu verarbeiten.

HinweisHinweis

Wenn Sie das Button-Steuerelement verwenden und die UseSubmitBehavior-Eigenschaft auf false festgelegt ist, können Sie mithilfe der GetPostBackEventReference-Methode das Clientpostbackereignis für das Button-Steuerelement zurückgeben.

Die OnClientClick-Eigenschaft der Steuerelemente Button, ImageButton und LinkButton kann verwendet werden, um ein clientseitiges Skript auszuführen.

Beispiel

Im folgenden Codebeispiel wird die Verwendung der RegisterClientScriptBlock-Methode der ClientScriptManager-Klasse veranschaulicht. Zwei clientseitige Skripts sind für die Seite definiert: PopupScript zeigt beim Laden der Seite eine clientseitige Warnmeldung an, ButtonClickScript definiert einen clientseitigen Handler für das onClick-Ereignis einer HTML-Schaltfläche.

Visual Basic
<%@ Page Language="VB" %>

<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>
  <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>
C#
<%@ Page Language="C#"%>
<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>
  <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>
.NET Framework-Sicherheit

Vererbungshierarchie

System.Object
  System.Web.UI.ClientScriptManager
Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0
Siehe auch

Page view tracker