(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original

Clientskript in ASP.NET-Webseiten

ASP.NET-Webanwendungen sind nicht auf serverbasierte Tools und Sprachen beschränkt. Sie können ECMAScript (JavaScript oder JScript) in die ASP.NET-Webseiten einschließen, um umfangreiche browserbasierte Funktionalität zu erstellen. In ASP.NET steht eine breite Palette von Funktionen für Clientskriptunterstützung zur Verfügung.

Eine Option besteht darin, einzelne Clientskriptausschnitte zu erstellen und zu ASP.NET-Webseiten hinzuzufügen, um das für die Anwendung entwickelte Browserverhalten zu unterstützen. Diese Option ist hilfreich, wenn Sie nur einige kleine JavaScript-Codeausschnitte einbinden möchten oder wenn Sie mit JavaScript-Code arbeiten, den Sie bereits erstellt haben. Mithilfe dieser Option können Sie die Größe der ASP.NET-Webseiten außerdem möglichst gering halten.

Alternativ können Sie die leistungsstarken AJAX-Funktionen von ASP.NET nutzen. Diese AJAX-Funktionen schließen ein vollständiges Framework ein, das Folgendes unterstützt:

  • Objektorientierte Programmierung in JavaScript.

  • Asynchrone Postbacks

  • Anwendungswebdienste für Authentifizierung und Profile.

  • Serversteuerelemente, die Clientskript mit erweitertem Debugging und Ablaufverfolgungsunterstützung verwalten.

Mit ASP.NET AJAX-Funktionen können Sie die JavaScript-Funktionalität mit weniger manuellem Codierungsaufwand nutzen. Diese stellt die erweiterte JavaScript-Funktionalität bereit, und biete ein Framework zum Erstellen der Clientfunktionalität, die in ASP.NET integriert wird.

Dieses Thema bietet eine Übersicht über Optionen zum Hinzufügen von Clientskript zu ASP.NET-Webseiten. Sie enthält die folgenden Abschnitte:

Verwenden Sie das Clientskript für folgende Aktionen:

  • Verbessern der Benutzerfreundlichkeit bei Webseiten, die aufwändiger gestaltet sind, stärker auf Benutzeraktionen reagieren und sich wie traditionelle Clientanwendungen verhalten. Sie können Tastatureingaben in einem Textfeld mithilfe von Clientskript überprüfen, während die einzelnen Zeichen eingegeben werden.

  • Fügen Sie ASP.NET-Webseiten AJAX-Funktionalität hinzu, sodass Sie zu Folgendem in der Lage sind:

    • Reduzieren von ganzseitigen Aktualisierungen und Vermeiden von Seitenflimmern, indem Sie DOM-Elemente auf der Seite dynamisch bearbeiten.

    • Aktualisieren und Verwalten der Benutzeroberfläche, ohne Postback zum Server.

    • Organisieren des Codes in Clientkomponenten. Clientkomponenten sind wiederverwendbare Objekte, die JavaScript kapseln, das auf dem Microsoft Ajax Library basiert. Clientkomponenten können auch von benutzerdefinierten serverseitigen Steuerelementen verwaltet oder vorhandenen Serversteuerelementen zugeordnet werden, um die Clientfunktionalität hinzuzufügen.

Da ASP.NET-Webseiten lediglich HTML-Markup rendern, können Sie einer ASP.NET-Seite auch eigenes Clientskript hinzufügen. Die Unterstützung von Clientskript in ASP.NET-Seiten hängt von der Unterstützung für Clientskript durch den aufrufenden Browser ab. Wenn die Seite im Browser eines Mobiltelefons oder eines anderen Geräts ausgeführt wird, hängt der Grad der Unterstützung für Clientskript vom jeweiligen Browser ab.

Es gibt mehrere Optionen zum Einschließen von Clientskript in ASP.NET-Seiten:

  • Sie können Clientskript statisch in einen script einschließen, der Code umfasst oder ein include-Attribut verwendet, um auf eine JavaScript-Datei (JS-Datei) zu verweisen. Verwenden Sie diese Option, um Skriptblöcke oder JavaScript-Dateien einzufügen, die Clientskript enthalten, das Sie nicht dynamisch erstellen müssen und für das keine zusätzliche AJAX-Funktionalität erforderlich ist, die vom Microsoft Ajax Library bereitgestellt wird.

  • Sie können mit der ClientScriptManager-Klasse eine ASP.NET-Webseite dynamisch erstellen und dieser Clientskript hinzufügen. Verwenden Sie diese Option, wenn Sie Skripts erstellen möchten, die von Informationen abhängig sind, die nur zur Laufzeit verfügbar sind.

  • Wenn Sie planen, die AJAX-Funktionen von ASP.NET zu nutzen, können Sie Clientskriptdateien mit dem ScriptManager-Serversteuerelement verwalten. Das ScriptManager-Serversteuerelement stellt auch sicher, dass der Microsoft Ajax Library im Browser geladen wird, bevor die Skripts ausgeführt werden. Weitere Informationen finden Sie unter Übersicht über Microsoft AJAX.

Einschließen statischer Clientskriptblöcke

Sie können, wie auch in HTML-Seiten, einer ASP.NET-Seite script-Blöcke hinzufügen. Sie können Clientskript verwenden, um Ereignishandler für Clientereignisse wie das onload-Ereignis der Seite zu schreiben. Wenn eine ASP.NET-Seite im Browser ausgeführt wird, sind die Markupelemente auf der Seite in Clientskript adressierbar. Sie lösen alle Clientereignisse aus, die sie in einer HTML-Seite ausführen.

HinweisHinweis

Sie können in Clientskript auf ASP.NET-Serversteuerelemente verweisen. Weitere Informationen finden Sie weiter unten in diesem Thema unter Verweisen auf Serversteuerelemente in Clientskript

Eine ASP.NET-Webseite kann auch auf eine Skriptdatei zugreifen, indem sie darauf in einem src-Attribut eines <script>-Tags verweist. Dies ist im folgenden Beispiel gezeigt:

<script type="text/javascript" src="MyScript.js"></script>

Indem Sie Clientskripts in externen JS-Dateien und nicht in den Seiten selbst speichern, können Sie Clientskripts besser organisieren. Auf diese Weise können die Clientskripts auch von der Versionskontrolle leichter verwaltet und einfacher zwischen Seiten freigegeben werden.

Externe JS-Dateien werden vom Browser zwischengespeichert, ähnlich wie beim Zwischenspeichern von Webseiten und Bildern. Nachdem das Skript vom Browser als externe Datei geladen wurde, steht es im Cache einer beliebigen anderen Webseite zur Verfügung, für die es erforderlich ist. Dadurch kann die Leistung der Webanwendung gesteigert werden.

Dynamisches Erstellen von Clientskript

In vielen Fällen können Sie das Clientskript für eine Seite deklarativ erstellen, normalerweise als Skriptblock. Das Clientskript kann jedoch auch dynamisch erstellt werden. Dies ist dann von Nutzen, wenn das Skript von den Informationen abhängig ist, die nur zur Laufzeit verfügbar sind. Vielleicht möchten Sie in eine Seite ein Clientskript einfügen, das ein Serversteuerelement anspricht, dessen Name (ID) bis zur Ausführung der Anwendung unbekannt bleibt, oder Sie möchten ein Skript erstellen, das von Werten abhängig ist, die Sie von einem Benutzer abrufen.

Sie können Clientskript beispielsweise durch Aufrufen der folgenden Methoden der ClientScriptManager-Klasse erstellen und dynamisch in eine gerenderte Seite einfügen:

Im folgenden Beispiel wird gezeigt, wie der Seite ein dynamisch erstelltes Clientskripts hinzugefügt wird. Der Code überprüft, ob ein Kontrollkästchen mit dem Namen checkDisplayCount aktiviert wird. Wenn dies der Fall ist, werden durch den Code die folgenden Aufgaben ausgeführt:

  • Es wird eine Clientskriptfunktion erstellt, die mit einem span-Element die Anzahl der Zeichen in einem TextBox-Steuerelement mit dem Namen TextBox1 anzeigt.

  • Dem TextBox-Steuerelement wird ein Clientereignis hinzugefügt.

  • Das span-Element wird generiert.

Im Code wird davon ausgegangen, dass die Seite ein Kontrollkästchen mit dem Namen checkDisplayCount enthält, dessen AutoPostBack-Eigenschaft auf true festgelegt ist, und ein PlaceHolder-Steuerelement mit dem Namen Platzhalter1.

void Page_Load(object sender, EventArgs e)
{
    if(checkDisplayCount.Checked)
    {
        String scriptText = "";
        scriptText += "function DisplayCharCount(){";
        scriptText += "   spanCounter.innerText = " + 
            " document.forms[0].TextBox1.value.length";
        scriptText += "}";
        ClientScriptManager.RegisterClientScriptBlock(this.GetType(), 
           "CounterScript", scriptText, true);
        TextBox1.Attributes.Add("onkeyup", "DisplayCharCount()");
        LiteralControl spanLiteral = new 
            LiteralControl("<span id=\"spanCounter\"></span>");
        PlaceHolder1.Controls.Add(spanLiteral);
    }
}

Weitere Informationen finden Sie unter Gewusst wie: Dynamisches Hinzufügen von Clientskripts zu ASP.NET-Webseiten.

Für ClientScriptManager-Klassenmethoden müssen Sie einen Typ angeben, der dem Skriptblock zugeordnet wird. Jeder Skriptblock erhält außerdem einen Schlüssel. Das Angeben eines Typs hilft beim Vermeiden von Konflikten, wenn sowohl eine Seite als auch Steuerelemente (benutzerdefinierte Steuerelemente oder Benutzersteuerelemente) der gleichen Seite Skriptblöcke hinzufügen. Der Schlüssel beugt einer Verdoppelung vor. Wenn Sie eine der Methoden zum Hinzufügen von Skript aufrufen und ein Skript mit dem gleichen Schlüssel und dem gleichen Typ bereits vorhanden ist, dann wird das Skript nicht erneut hinzugefügt.

Der bereitgestellte Typ und Schlüssel helfen, eine unnötige Verdoppelung zu vermeiden. Sie müssen daher im Allgemeinen nicht explizit bestimmen, ob ein Skriptblock bereits vorhanden ist. Wenn es sich bei einer Anwendung anbietet, nach einem vorhandenen Skriptblock zu suchen, dann können Sie dazu die folgenden Methoden aufrufen:

Hinzufügen von Clientskript mit dem ScriptManager-Steuerelement

Wenn Sie ASP.NET-AJAX-Funktionen verwenden, bietet das ScriptManager-Steuerelement eine Möglichkeit zum Hinzufügen von Skriptdateien zu einer Seite. Dies schließt statische Skriptdateien (JS-Dateien) auf Datenträgern und Skriptdateien ein, die als Ressourcen in eine Assembly eingebettet sind. Sie können Skriptdateien deklarativ im Steuerelement angeben. Alternativ können Sie Registrierungsmethoden des ScriptManager-Steuerelements verwenden, mit denen Sie vorhandene Clientskriptdateien programmgesteuert verwalten und für eine Unterstützung für die Aktualisierung von Teilseiten mit Skripts arbeiten können.

Eine Übersicht des ScriptManager-Steuerelements finden Sie unter Übersicht über das ScriptManager-Steuerelement. Informationen zum Einbetten einer JavaScript-Datei in eine Assembly als Ressource sowie zur Nutzung dieser Datei in einer Webseite erhalten Sie unter Exemplarische Vorgehensweise: Einbetten einer JavaScript-Datei als Ressource in eine Assembly.

HinweisHinweis

Wenn Sie Client-AJAX-Funktionen von ASP.NET, jedoch keine serverbasierten Funktionen verwenden, verwenden Sie Methoden der ClientScriptManager-Klasse, um Skripts in eine ASP.NET-Webseite einzufügen. Wenn Sie beispielsweise nicht das UpdatePanel-Steuerelement oder Lokalisierungsfunktionen für Skripts verwenden, benötigen Sie das ScriptManager-Steuerelement nicht. Daher können Sie seine Methoden nicht aufrufen, um Clientskript in die Seite einzufügen. Die Verwendung von Methoden der ClientScriptManager-Klasse ist in der Regel effizienter als die Verwendung von ScriptManager-Steuerelementmethoden. Das liegt daran, dass ClientScriptManager-Klassenmethoden keine zusätzliche Verarbeitung für serverbasierte Funktionen erfordern, die vom ScriptManager-Steuerelement unterstützt werden. Wenn Sie das Skript dynamisch erstellen müssen (anstatt einfach das vorhandene Skript zu verwalten), verwenden Sie die ClientScriptManager-Klasse, um Clientskript in eine Seite einzufügen. Verwenden Sie z. B. die ClientScriptManager-Klasse, wenn Sie Clientskript programmgesteuert auf Grundlage von Informationen erstellen möchten, auf die eine bereits vorhandene Datei nicht verweisen kann.

ASP.NET unterstützt die AJAX-Funktionalität, die es Ihnen ermöglicht, Clientskript zu verwenden, um einer ASP.NET-Webseite umfangreiche Funktionen hinzuzufügen. Dies schließt asynchrone Postbacks, eine Benutzeroberfläche mit hoher Reaktionsfähigkeit und vieles mehr ein. Die AJAX-Funktionalität wird mit dem Microsoft Ajax Library implementiert, die aus Clientskriptbibliotheken besteht, in denen browserübergreifende ECMAScript (JavaScript)- und Dynamic HTML (DHTML)-Technologien integriert sind. Die AJAX-Funktionalität ist in die serverbasierte Entwicklungsplattform in ASP.NET integriert.

Sie können das Microsoft Ajax Library-Typsystem, objektorientierte Funktionen sowie Erweiterungen zu JavaScript-Objekten verwenden, um die folgenden Funktionen zum Erstellen von benutzerdefiniertem Clientskript bereitzustellen:

  • Namespaces

  • Vererbung

  • Schnittstellen

  • Enumerationen

  • Reflektion

  • Debuggen von Hilfsmethoden

  • Ablaufverfolgung

  • Typisierte Ausnahmebehandlung

  • Hilfsmethoden für Zeichenfolgen und Arrays.

    HinweisHinweis

    Sie können die Microsoft Ajax Library verwenden, auch wenn Sie nicht beabsichtigen, serverbasierte AJAX-Funktionen von ASP.NET zu verwenden.

Weitere Informationen darüber, wie die Microsoft Ajax Library JavaScript erweitert, finden Sie in den folgenden Themen:

Browserkompatibilität für AJAX-Funktionen

Die Browserkompatibilitätsebene in der Microsoft Ajax Library stellt AJAX-Skriptkompatibilität für die am häufigsten verwendeten Browser bereit (einschließlich Microsoft Internet Explorer, Mozilla Firefox und Apple Safari). Dadurch können Sie dasselbe Skript schreiben, unabhängig davon, für welchen der unterstützten Browser dies vorgesehen ist. Weitere Informationen finden Sie unter Übersicht über Microsoft AJAX.

Einige ASP.NET-Serversteuerelemente sind bezüglich ihrer Funktionalität von Clientskript abhängig. So benötigt z. B. das LinkButton-Steuerelement Clientskript als Unterstützung für sein Postbackverhalten. Das für ASP.NET-Webserversteuerelemente erforderliche Clientskript wird der Seite beim Rendern automatisch hinzugefügt. Das für diese Steuerelemente generierte Clientskript ist von jedem selbst erstellten Clientskript unabhängig.

Weitere Informationen finden Sie unter Verwendung von Clientskript durch ASP.NET-Webserversteuerelemente.

ASP.NET-Steuerelemente werden als Elemente in der Seite gerendert. (Die genauen von einem Steuerelement gerenderten Elemente sind von der Markupsprache für die Seite abhängig; dazu kann HTML, XHTML oder eine andere Sprache gehören.) Sie können deshalb Steuerelementen genauso wie anderen Elementen auf der Seite eine Clientskript-Ereignisbehandlung hinzufügen. In einigen Fällen müssen Sie jedoch wissen, wie das Steuerelement die Ausgabe rendert und welche Attribute das Steuerelement für sich reserviert.

Weitere Informationen finden Sie unter Gewusst wie: Hinzufügen von Clientskriptereignissen zu ASP.NET-Webserversteuerelementen.

Deklaratives Hinzufügen von Clientereignishandlern

Im Markup für ASP.NET-Serversteuerelemente werden die Eigenschaftswerte mithilfe von Attributen festgelegt. Um beispielsweise die Text-Eigenschaft eines TextBox-Steuerelements festzulegen, können Sie folgendes Markup erstellen:

<asp:textbox id="TextBox1" runat="server" text="Sample Text" />
SicherheitshinweisSicherheitshinweis

Benutzereingaben in TextBox stellen ein potenzielles Sicherheitsrisiko dar. Standardmäßig stellt die ASP.NET-Seite sicher, dass die Benutzereingabe keine Skript- oder HTML-Elemente enthält. Weitere Informationen hierzu finden Sie unter Übersicht über Skriptangriffe.

Wenn Sie ein Attribut einschließen, das keiner Eigenschaft des Steuerelements zugeordnet werden kann, ignoriert ASP.NET das Attribut während der Serververarbeitung. Es wird unverändert als Teil des Markups, das vom Steuerelement generiert wird, an den Browser übergeben. So verfügt z. B. das TextBox-Steuerelement über keine Eigenschaft mit dem Namen onkeyup. Wenn Sie für ein TextBox-Steuerelement ein onkeyup-Attribut in das Markup einfügen, wird das Attribut an den Browser übergeben. Aufgrund dieses Verhaltens können Sie Ereignisbindungen an Serversteuerelemente durch Deklaration im Markup hinzufügen. Das folgende Markup für ein TextBox-Steuerelement bewirkt beispielsweise, dass im Textfeld die aktuelle Textlänge in einem span-Element mit dem Namen spanCounter immer dann angezeigt wird, wenn der Benutzer im Textfeld auf eine Taste drückt.

<asp:textbox id="TextBox1" runat="server" text="Sample Text" 
  onkeyup="spanCounter.innerText=this.value.length;" />

Als Alternative könnte das Ereignis eine Methode aufrufen, die in einem Clientskript an einer anderen Stelle in der Seite definiert ist:

<asp:textbox id="TextBox1" runat="server" text="Sample Text" 
  onkeyup="DisplayCount(this);" />

Beachten Sie, dass die für den Servercode verwendete Programmiersprache (Visual Basic oder C#) keine Auswirkungen auf Clientskript hat, das immer in ECMAScript (JavaScript oder JScript) geschrieben wird.

Weitere Informationen finden Sie unter Gewusst wie: Hinzufügen von Clientskriptereignissen zu ASP.NET-Webserversteuerelementen.

Hinzufügen von Attributen im Servercode

Sie können einem Steuerelement direkt übergebene Attribute nicht nur deklarativ, sondern auch programmgesteuert mittels Servercode hinzufügen. Dies ist hilfreich, wenn der Wert des hinzuzufügenden Attributs nur zur Laufzeit bekannt ist. Ausführliche Informationen finden Sie unter Gewusst wie: Festlegen von HTML-Attributen für Steuerelemente in ASP.NET-Webseiten.

Beim Rendern eines ASP.NET-Serversteuerelements wird die ClientID-Eigenschaft in der Seite als id-Attribut des sich ergebenden Elements auf der Seite gerendert. (Die ClientID-Eigenschaft wird automatisch aus der von Ihnen festgelegten ID-Eigenschaft generiert.) Zum Beispiel können Sie das folgende ASP.NET-Serversteuerelement erstellen:

<asp:textbox id="TextBox1" runat="server" text="Sample Text" />

Die ClientID-Eigenschaft wird auf TextBox1 festgelegt, und das sich ergebende Element würde in einem HTML-basierten Browser folgendermaßen aussehen:

<input name="TextBox1" type="text" value="Sample Text" id="TextBox1" />

Sie können deshalb mit diesen Attributen in Clientskript auf das Serversteuerelement verweisen. In der Regel müssen Sie in Clientskript das Steuerelement mit einem vollqualifizierten Verweis ansprechen. Wenn es sich bei dem Steuerelement um ein untergeordnetes Element des form-Elements der Seite handelt, verweisen Sie in Clientskript normalerweise auf das Steuerelement, indem Sie eine Syntax wie im folgenden Codebeispiel verwenden:

var tb1 = document.getElementById("TextBox1");
tb1.value = "New value";

Im folgenden Beispiel wird davon ausgegangen, dass das id-Attribut des form-Elements auf form1 festgelegt wurde.

document.form1.TextBox1.value = "New value";

Das id-Attribut, das für ein Serversteuerelement generiert wird, ist davon abhängig, welches Steuerelement Sie verwenden und ob es um ein untergeordnetes Element eines anderen Steuerelements handelt. Wenn sich ein Steuerelement in einem sich wiederholenden Steuerelement befindet, z. B. dem Steuerelement GridView, ListView oder Repeater, werden durch ein einzelnes Steuerelement, das im Markup definiert wurde, oftmals mehrere Instanzen des Steuerelements im gerenderten HTML erstellt. Das ASP.NET-Seitenframework verfügt über einen Mechanismus, mit dem sichergestellt wird, dass jedes Steuerelement im gerenderten HTML für eine Seite eine eindeutige ID besitzt. Weitere Informationen zu den Algorithmen, die ASP.NET zum Zuweisen von ClientID-Werten verwendet, finden Sie unter derClientIDMode-Eigenschaft und in den folgenden Themen:

Wie bereits zuvor erwähnt, können Sie den meisten ASP.NET-Serversteuerelementen ein Clientklickereignis hinzufügen, indem Sie dem Markup des Steuerelements das onclick-Attribut hinzufügen. Einige Steuerelemente reservieren jedoch das onclick-Attribut zum Definieren der Bindung an ein Serverereignis. Dazu gehören die Steuerelemente Button, LinkButton und ImageButton. In diesen Steuerelementen können Sie das onclick-Attribut nicht verwenden, um dem Steuerelement deklarativ einen Clientskripthandler hinzuzufügen.

Sie können einem Klickereignis einen Clientskripthandler auf zwei Arten hinzufügen:

  • Legen Sie die OnClientClick-Eigenschaft des Steuerelements auf das auszuführende Skript fest. Bei der Darstellung des Button-Steuerelements wird der OnClientClick-Wert in ein onclick-Attribut umgewandelt.

  • Fügen Sie programmgesteuert ein onclick-Attribut hinzu, indem Sie die Add-Methode der Attributes-Auflistung des Steuerelements aufrufen.

    HinweisHinweis

    Sie können einem Serversteuerelement kein onclick-Attribut programmgesteuert hinzufügen, wenn das Steuerelement bereits onclick als Teil seiner grundlegenden Funktionalität verwendet, z. B. LinkButton.

Das folgende Codebeispiel zeigt ein Button-Steuerelement, das sowohl das clientseitige als auch das serverseitige Click-Ereignis auslöst:

<asp:button id="Button1" 
  runat="server" 
  OnClientClick="return confirm('Ok to post?')" 
  onclick="Button1_Click" 
  Text="Click!" />

Neben der Verwendung von Standardpostbacks können ASP.NET-Webseiten auf unterschiedlichen Weise Informationen zwischen Clientskript und Servercode austauschen. AJAX-Funktionen in ASP.NET wie das UpdatePanel-Serversteuerelement können für Sie asynchrone Teilaktualisierungen von Seiten automatisieren. Außerdem unterstützt ASP.NET AJAX das asynchrone Aufrufen von Webdiensten.

Wenn Sie keine AJAX-Funktionen von ASP.NET verwenden, können Sie direkt einen benutzerdefinierten Clientrückruf aufrufen und Informationen durch eine Vielzahl von Methoden zwischen dem Browser und dem Server austauschen. Der folgende Abschnitt enthält Informationen zu verfügbaren Optionen.

Direktes Aufrufen von Servercode aus Clientskript

Der Servercode kann von Clientskript direkt aufgerufen werden, indem Sie einen Clientrückruf implementieren. Jede Benutzeraktion auf einer ASP.NET-Webseite, die die Ausführung von Servercode nach sich zieht, erfordert in der Regel ein Postback. Sie können jedoch auch eine Serververarbeitung vom Browser ohne vollständiges Postback aufrufen. In diesem Szenario wird nicht die ganze Seite vom Browser an den Server gesendet und dann erneut geladen, wenn der Server antwortet. Stattdessen wird nur eine kleine Datenmenge an den Server gesendet. Wenn der Server eine Antwort sendet, verarbeitet das Clientskript im Browser die zurückgegebenen Daten, ohne die Seite erneut zu laden. Während der Serververarbeitung wird der gesamte Clientzustand, wie z. B. lokale Variablen, beibehalten. Dieser Prozess wird als asynchrones Postback bezeichnet und ist entscheidend für das Teilrendering von Seiten.

Sie können Servermethoden von Clientskript ohne Postback auf die folgende Art und Weise aufrufen:

  • Verwenden Sie das UpdatePanel-Serversteuerelement in ASP.NET. Dieses Steuerelement ist Teil der AJAX-Funktionalität von ASP.NET. Sie können damit einen Bereich einer Seite definieren, der bei einer Teilaktualisierung von Seiten aktualisiert wird. Wenn Sie das UpdatePanel-Steuerelement verwenden, müssen Sie selbst kein Clientskript schreiben, um asynchrone Teilaktualisierungen von Seiten aufzurufen. Weitere Informationen finden Sie unter Übersicht über das Teilrendering von Seiten und Übersicht über das UpdatePanel-Steuerelement.

  • Verwenden Sie AJAX-Unterstützung für die Webdienstkommunikation in ASP.NET, um Clientskript zu schreiben, das eine Webservermethode aufruft. Dieser Ansatz ähnelt vom Prinzip her dem Schreiben eines eigenen Clientskriptrückrufs zum Aufrufen einer Webservermethode. In der Microsoft Ajax Library werden jedoch die Details des Aufrufens der Servermethode behandelt, und es wird eine robustere Clientskriptbibliothek zum Tätigen und Verarbeiten des Aufrufs bereitgestellt. Weitere Informationen finden Sie unter ASP.NET AJAX und Webdienste.

  • Implementieren Sie einen Clientrückruf. In diesem Szenario schreiben Sie Clientcode, der die Anforderung sendet und das Ergebnis verarbeitet. Der am häufigsten verwendete Ansatz besteht darin, eine aufrufende Funktion in Clientskript sowie eine Rückruffunktion zu erstellen, die aufgerufen wird, wenn der Server die Ergebnisse zurückgibt. Weitere Informationen finden Sie unter Programmgesteuertes Implementieren von Clientrückrufen ohne Postbacks in ASP.NET-Webseiten.

Jeder Ansatz hat gewisse Vorteile. Durch Erstellen eines eigenen Clientrückrufs erzielen Sie häufig den geringsten Aufwand und die kleinste Seitengröße. Durch Verwendung des UpdatePanel-Serversteuerelements können Sie Teilaktualisierungen von Seiten implementieren, ohne hierfür selbst Clientskript schreiben zu müssen. Durch Verwenden von AJAX zum Aufrufen von Webdiensten wird auch ein Großteil des Clientskripts eliminiert, das für asynchrone Webdienstaufrufe geschrieben werden müsste.

Austauschen von Informationen mithilfe eines HiddenField-Steuerelements

Sie können Informationen zwischen Clientskript und Servercode austauschen, indem Sie der Seite ein HiddenField-Steuerelement hinzufügen. Sie können auf das ausgeblendete Feld in Clientskript anhand seiner ID verweisen. Sie können auf das ausgeblendete Feld auch in Servercode verweisen. Auf diese Weise können Sie Werte in einem der Codeblöcke speichern und im anderen Codeblock lesen. Um Informationen vom Servercode an das Clientskript zu übergeben, können Sie mit der RegisterHiddenField-Methode programmgesteuert ein ausgeblendetes Feld erstellen. Mit dieser Methode können Sie eine ID und einen Wert für das Feld angeben. Sie können das Feld verwenden, um dynamische Werte auf der Seite derart zu speichern, dass das Clientskript diese lesen kann.

Austauschen von Informationen mithilfe von Cookies

Sie können auch mithilfe von Cookies Werte für Servercode und Clientcode austauschen. Weitere Informationen zum Schreiben und Lesen von Cookies im Servercode finden Sie unter Gewusst wie: Schreiben eines Cookies und Gewusst wie: Lesen eines Cookies. Weitere Informationen zur Verwendung von JavaScript zum Lesen und Schreiben von Cookies finden Sie auf der MSDN-Website unter JavaScript and cookies.

Austauschen von Informationen während asynchroner Postbacks

Wenn Sie die AJAX-Funktionen von ASP.NET verwenden, können Sie benutzerdefinierte Daten als Zeichenfolge während asynchroner Postbacks (Teilrendering von Seiten) mit der RegisterDataItem-Methode vom Server an den Client senden. Mit der RegisterDataItem-Methode können Sie Servercode verwenden, um ein Feld zu registrieren, das an ein Steuerelement angefügt ist. Sie können auf den Wert des Felds in Clientskript im Browser über die AJAX-Objekte Sys.WebForms.PageLoadingEventArgs und Sys.WebForms.PageLoadedEventArgs zugreifen. Die RegisterDataItem-Methode kann nur während eines asynchronen Postbacks aufgerufen werden.

Informationen zum Verwenden der RegisterDataItem-Methode zum Austauschen von Daten zwischen dem Server und dem Client finden Sie in den folgenden Themen:

Clientkomponenten sind wiederverwendbare Objekte, die JavaScript kapseln, das auf dem Microsoft Ajax Library basiert. Die Bibliothek stellt die folgenden Basisklassen für Clientobjekttypen bereit: Komponente (dabei handelt es sich um eine Basisklasse für nicht visuelle Komponenten), Steuerelement und Verhalten. Die Typen können von diesen Klassen abgeleitet werden, um umfassende Clientfunktionen bereitzustellen, darunter die folgenden:

  • Zugreifen auf den Lebenszyklus einer Komponente von der Initialisierung bis zum Freigeben. Dazu gehören Ereignisse, die ausgelöst werden, wenn sich Eigenschaftswerte ändern.

  • Darstellen eines DOM-Elements als Clientobjekt, das über neue Funktionalität verfügt. Dadurch wird das Verhalten von DOM-Elementen erweitert. Sie können z. B. ein Wasserzeichenverhalten hinzufügen, das an ein bestehendes Textfeld angefügt werden kann.

Weitere Informationen finden Sie unter den folgenden Themen:

Alle vorhandenen oder benutzerdefinierten ASP.NET-Serversteuerelemente können in ein ASP.NET AJAX-Extendersteuerelement umgewandelt werden. Ein Extendersteuerelement ist ein Webserversteuerelement, das ECMAScript (JavaScript)-, DHTML- und AJAX-Funktionen des Webbrowsers verwendet, um Funktionen wie Interaktivität und asynchrone Kommunikation mit dem Server hinzuzufügen.

Weitere Informationen finden Sie unter den folgenden Themen:

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft