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:

<html>
<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:

<script runat="server">
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:

<asp:control_name id="some_id" runat="server" />

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:

<script runat="server">
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:

<asp:control_name id="some_id" runat="server" />

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

<html>
<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>
Andere Erweiterungen