Autor: Builder, Tony Patton
Obwohl ASP.NET eine leistungsstarke Plattform bietet, sollten Entwickler ausgereifte Technologien wie JavaScript nicht ignorieren. In diesem Artikel, Tony
Patton erklärt, wie man JavaScript mit ASP.NET-Steuerelementen in die Webentwicklung integriert.
Obwohl Webentwicklungsplattformen Flexibilität und zahlreiche Funktionen bieten, möchten oder müssen Sie sich häufig auf vorhandene Technologien verlassen, um eine notwendige Aufgabe zu erfüllen. Ein gutes Beispiel ist ASP.NET, das eine leistungsstarke Entwicklungsplattform, aber gleichzeitig ausgereifte Technologien wie JavaScript bietet sollte auch nicht außer Acht gelassen werden. In diesem Artikel erkläre ich Ihnen, wie Sie JavaScript-Code mit ASP.NET-Steuerelementen verbinden.
konventioneller Weg
Wenn eine Webanwendung ein Popup- oder Bestätigungsfenster oder andere clientseitige Funktionen erfordert, erstellen Sie normalerweise die erforderlichen JavaScript-Methoden und rufen sie bei Bedarf auf. Listing A enthält beispielsweise ein Bestätigungsfenster, mit dem der Benutzer die Formularübermittlung fortsetzen oder abbrechen kann.
Nach Auswahl der Schaltfläche „Senden“ wird die JavaScript-Methode „confirmSubmit“ aufgerufen. Diese Bestätigungsaufforderung ermöglicht es dem Benutzer, mit der Formularübermittlung fortzufahren (Bestätigen auswählen) oder abzubrechen (Abbrechen auswählen).
Der obige Code funktioniert wie geplant, ist jedoch nicht so einfach, wenn auf einer Entwicklungsplattform wie ASP.NET gearbeitet wird.
Ersatzoptionen für ASP.NET
ASP.NET unterstützt die Verwendung von HTML-Elementen wie Eingabeschaltflächen und Textfeldern, es gibt jedoch einen vollständigen Satz von Steuerelementen, die zusätzliche Funktionalität basierend auf dem eigenen Entwicklungsmodell von ASP.NET bereitstellen.
Das Anhängen von JavaScript an ASP.NET ist nicht so einfach wie der direkte HTML/JavaScript-Ansatz. Das ASP.NET-Programmiermodell stellt Methoden in der Basisseitenklasse bereit, um Skriptblöcke an Seitenelemente anzuhängen. Die folgenden Methoden können verwendet werden, um JavaScript an eine Seite oder ein Seitenelement anzuhängen oder zu integrieren:
l
RegisterClientScriptBlock: Ermöglicht Ihrer Seite, Skriptblöcke und clientseitige Skripts im Seitenobjekt <form zu enthalten
runat=
Die Ausführung beginnt nach dem öffnenden Tag des server>-Elements. Der Skriptblock sendet die Ausgabe als Objekt, daher müssen Sie zwei <script>-Element-Tags hinzufügen.
l
RegisterOnSubmitStatement: Ermöglicht Ihnen, dem OnSubmit-Ereignis des Seitenobjekts einen Skriptblock/eine Skriptmethode zuzuweisen.
l
RegisterStartupScript: Ermöglicht das Einbinden von Skriptblöcken in die Seite, ähnlich der RegisterClientScriptBlock-Methode. Diese Methode befindet sich im Seitenobjekt <form
runat=
Der Skriptblock wird vor dem schließenden Tag des Server>-Elements ausgeführt und übermittelt die Ausgabe als Objekt. Sie müssen also zwei <script>-Element-Tags hinzufügen.
Jede Methode kann zwei Parameter akzeptieren: Schlüssel und Skript. Der Schlüsselwert sollte eindeutig sein. Mit diesem eindeutigen Schlüsselwert können mehrere servergesteuerte Instanzen den Skriptblock anfordern Führen Sie das Skript erneut im Ausgabestream aus. Das zweite Parameterskript enthält das tatsächliche an den Client gesendete Skript, bei dem es sich um den vollständigen JavaScript-Code oder den Namen einer Methode handeln kann.
Diese Methoden können im tatsächlichen ASP.NET-Seitencode verwendet werden, unabhängig davon, ob es sich um VB.NET, C#, J# oder eine andere Sprache handelt. Listing B zeigt den in C# geschriebenen ASP.NET-Beispielcode.
JavaScript-Methoden werden über eine Zeichenfolgenvariable erstellt, ihr Wert wird als zweites Argument an die RegisterClientScriptBlock-Methode übergeben und der eigentliche Methodenname wird über die Attribute des Objekts übergeben
Die Add-Methode der Eigenschaft wird dem ASP.NET-Schaltflächensteuerelement zugewiesen. Das JavaScript-Ereignis wird als erster Parameter übergeben und der Methodenname ist der zweite Parameter.
Darüber hinaus fällt Ihnen möglicherweise die Verwendung der Methode IsStartupScriptRegistered auf, mit der Sie überprüfen können, ob das Skript registriert wurde, bevor Sie es weiter verwenden. Es gibt zwei Methoden für dieses Problem:
l
IsStartupScriptRegistered: Bestätigt, ob das Startskript des Clients im Seitenobjekt registriert wurde. Sein einziger Parameter ist der Name des Skripts.
l
IsClientScriptBlockRegistered: Bestätigt, ob der Skriptblock des Clients auf dem Seitenobjekt registriert wurde. Sein einziger Parameter ist der Name des Skripts.
Eine andere Möglichkeit, das Problem zu lösen, besteht darin, die Methode „RegisterOnSubmitStatement“ der Seitenklasse zu verwenden. Listing C wiederholt die Funktion von Listing B, der Unterschied besteht jedoch darin, dass die Methode „confirmSubmit“ mit dem Submit-Ereignis der Seite und nicht mit dem Click-Ereignis der Seite verbunden ist Taste.
Dieses einfache Beispiel veranschaulicht deutlich, wie Sie JavaScript-Skriptblöcke und JavaScript-Skripts in Steuerelemente auf einer ASP.NET-Seite einbinden. Wenn Sie ASP.NET-Steuerelemente verwenden, kann Ihnen dieser Ansatz dabei helfen, Skripts an diese Steuerelemente anzuhängen. Sie können jedoch auch die Registermethode verwenden um das JavaScript eines Projekts zu zentralisieren. Sie können eine Klassendatei erstellen, die die Skripte enthält, und diese nach Bedarf auf den Seiten verwenden. Auf diese Weise müssen Sie die Skripte nur an einem Ort verwalten und können sie einfacher auf einer oder mehreren Seiten in einer Anwendung verwenden.
Eine Kombination aus Alt und Neu, egal auf welcher Entwicklungsplattform Sie sich befinden, Sie werden wahrscheinlich nicht auf die Verwendung von JavaScript als clientseitige Skriptsprache verzichten. Obwohl ASP.NET-Steuerelemente eine bieten Bei einer großen Anzahl von Funktionen muss JavaScript oft noch mit diesen Steuerelementen „verheiratet“ werden. Glücklicherweise enthält die ASP.NET-Seitenklasse zahlreiche Methoden, um Skriptblöcke und -methoden in die Seite und ihre Steuerelemente zu integrieren.