ASP.NET Web Forms - Serversteuerelemente
Serversteuerelemente sind Tags, die vom Server verstanden werden können.
Einschränkungen von klassischem ASP
Der unten aufgeführte Code wurde aus dem vorherigen Kapitel kopiert:
<body bgcolor="yellow">
<center>
<h2>Hello Example!</h2>
<p><%Response.Write(now())%></p>
</center>
</body>
</html>
Der obige Code spiegelt die Einschränkungen von klassischem ASP wider: Codeblöcke müssen dort platziert werden, wo die Ausgabe angezeigt werden soll.
Bei klassischem ASP ist es unmöglich, ausführbaren Code von der HTML-Seite zu trennen. Dies macht die Seite schwer lesbar und wartbar.
ASP.NET - Serversteuerelemente
ASP.NET hat das obige „Spagetti-Code“-Problem durch Serversteuerelemente gelöst.
Serversteuerelemente sind Tags, die vom Server verstanden werden können.
Es gibt drei Arten von Serversteuerelementen:
- HTML-Serversteuerelemente – erstellte HTML-Tags
- Web-Serversteuerelemente – neue ASP.NET-Tags
- Validierungs-Serversteuerelemente – werden für die Eingabevalidierung verwendet
ASP.NET - HTML-Serversteuerelemente
HTML-Serversteuerelemente sind HTML-Tags, die vom Server verstanden werden können.
HTML-Elemente in ASP.NET-Dateien werden standardmäßig als Text behandelt. Um diese Elemente programmierbar zu machen, fügen Sie dem HTML-Element das Attribut runat="server" hinzu. Dieses Attribut zeigt an, dass das Element als Serversteuerelement verarbeitet wird. Sie müssen außerdem das id-Attribut hinzufügen, um das Serversteuerelement zu identifizieren. Die id-Referenz kann verwendet werden, um das Serversteuerelement zur Laufzeit zu manipulieren.
Hinweis:Alle HTML-Serversteuerelemente müssen sich innerhalb eines <form>-Tags mit dem Attribut runat="server" befinden. Das Attribut runat="server" zeigt an, dass das Formular auf dem Server verarbeitet werden muss. Es zeigt auch an, dass auf die darin enthaltenen Steuerelemente über Serverskripte zugegriffen werden kann.
Im folgenden Beispiel deklarieren wir ein HtmlAnchor-Serversteuerelement in der .aspx-Datei. Dann manipulieren wir die HRef-Eigenschaft des HtmlAnchor-Steuerelements in einem Ereignishandler (ein Ereignishandler ist eine Subroutine, die Code für ein bestimmtes Ereignis ausführt). Das Page_Load-Ereignis ist eines der vielen von ASP.NET verstandenen Ereignisse:
Sub Page_Load
link1.HRef="http://www.example.com"
End Sub
</script>
<html>
<body>
<form runat="server">
Visit EXAMPLE!
</form>
</body>
</html>
Der ausführbare Code selbst wurde aus dem HTML-Code herausverlagert.
ASP.NET - Web-Serversteuerelemente
Web-Serversteuerelemente sind spezielle ASP.NET-Tags, die vom Server verstanden werden können.
Ähnlich wie HTML-Serversteuerelemente werden Web-Serversteuerelemente auf dem Server erstellt und erfordern ebenfalls das Attribut runat="server", um wirksam zu werden. Web-Serversteuerelemente müssen jedoch keinen bestehenden HTML-Elementen entsprechen; sie können komplexere Elemente darstellen.
Die Syntax zum Erstellen eines Web-Serversteuerelements lautet:
Im folgenden Beispiel deklarieren wir ein Button-Serversteuerelement in der .aspx-Datei. Dann erstellen wir einen Ereignishandler für das Click-Ereignis, um den Text auf der Schaltfläche zu ändern:
Sub submit(Source As Object, e As EventArgs)
button1.Text="You clicked me!"
End Sub
</script>
<html>
<body>
<form runat="server">
<asp:Button id="button1" Text="Click me!"
runat="server" OnClick="submit"/>
</form>
</body>
</html>
ASP.NET - Validierungs-Serversteuerelemente
Validierungs-Serversteuerelemente werden verwendet, um Benutzereingaben zu validieren. Wenn die Benutzereingabe die Validierung nicht besteht, wird dem Benutzer eine Fehlermeldung angezeigt.
Jedes Validierungssteuerelement führt eine bestimmte Art von Validierung aus (wie z. B. die Validierung eines bestimmten Wertes oder eines Wertebereichs).
Standardmäßig wird die Seitenvalidierung durchgeführt, wenn auf Button-, ImageButton- oder LinkButton-Steuerelemente geklickt wird. Sie können CausesValidation auf false setzen, um zu verhindern, dass die Validierung beim Klicken auf Schaltflächen-Steuerelemente durchgeführt wird.
Die Syntax zum Erstellen eines Validierungs-Serversteuerelements lautet:
Im folgenden Beispiel deklarieren wir ein TextBox-Steuerelement, ein Button-Steuerelement und ein RangeValidator-Steuerelement in der .aspx-Datei. Wenn die Validierung fehlschlägt, wird der Text "The value must be from 1 to 100!" im RangeValidator-Steuerelement angezeigt:
Beispiele
<body>
<form runat="server">
<p>Enter a number from 1 to 100:
<asp:TextBox id="tbox1" runat="server" />
<br /><br />
<asp:Button Text="Submit" runat="server" />
</p>
<p>
<asp:RangeValidator
ControlToValidate="tbox1"
MinimumValue="1"
MaximumValue="100"
Type="Integer"
Text="The value must be from 1 to 100!"
runat="server" />
</p>
</form>
</body>
</html>