ASP.NET - server控件

Server控件 zijn labels die door de server worden begrepen.

Beperkingen van Classic ASP

Hieronder wordt de code vermeld die is gekopieerd van het vorige gedeelte:

<html>
<body style="background-color:#e5eecc; text-align:center;">
<h2>Hello CodeW3C.com!</h2>
<p><%Response.Write(now())%></p>
</body>
</html>

Het bovenstaande codevoorbeeld reflecteert de beperkingen van Classic ASP: codeblokken moeten worden geplaatst op de locaties waar er moet worden uitgegeven.

Met Classic ASP kunnen we de uitvoerbare code niet loskoppelen van HTML zelf. Dit maakt de pagina moeilijk leesbaar en moeilijk te onderhouden.

ASP.NET - server控件

Door middel van server控件 heeft ASP.NET het probleem van "spaghetti-code" opgelost dat eerder werd beschreven.

Server控件 zijn labels die door de server worden begrepen.

Er zijn drie typen server控件:

  • HTML server控件 - traditionele HTML-labels
  • Web server控件 - nieuwe ASP.NET tags
  • Validatie server控件 - voor invoerverificatie

ASP.NET - HTML server控件

HTML server控件 zijn HTML-labels die door de server worden begrepen.

HTML-elementen in ASP.NET worden als tekst behandeld. Om deze elementen programmeerbaar te maken, moet je deze HTML-elementen De eigenschap runat="server"Deze eigenschap geeft aan dat dit element een server控件 is. Bovendien moet de id-eigenschap worden toegevoegd om de server控件 te identificeren. Deze id kan worden gebruikt om de server控件 tijdens de runtime te manipuleren.

Note:All HTML server controls must be within a <form> tag with the runat="server" attribute. The runat="server" attribute indicates that the form should be processed on the server. It also indicates that the controls included in it can be accessed by server scripts.

In the following example, we declare an HtmlAnchor server control in the .aspx file. Then we operate on the HRef property of the HtmlAnchor control in an event handler. The Page_Load event is one type of event that ASP.NET can understand:

Note:An event handler (event handler) is a subroutine that executes code for a given event.

<script runat="server">
Sub Page_Load
link1.HRef="http://www.codew3c.com"
End Sub
</script>
<html>
<body>
<form runat="server">
<a id="link1" runat="server">Visit CodeW3C.com!</a>
</form>
</body>
</html>

Tip:Executable code itself has been moved outside of HTML.

ASP.NET - Web server control

Web server controls are special ASP.NET tags that the server can understand.

Similar to HTML server controls, Web server controls are also created on the server, and they also require the runat="server" attribute to be effective. However, Web server controls do not need to map any existing HTML elements; they represent more complex elements.

The syntax for creating a Web server control is:

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

In the following example, we declare a Button server control in the .aspx file. Then we create an event handler for the Click event that can modify the text on the button:

<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 - Validation server control

Validation server control is used to validate user input. If the user input does not pass the validation, an error message will be displayed to the user.

Elke validatiecontrole voert een specifieke validatietype uit (bijvoorbeeld het valideren van een specifieke waarde of een waardebereik).

Standaard wordt de pagina validatie uitgevoerd wanneer op de Button, ImageButton of LinkButton wordt geklikt. U kunt een knopcontrole blokkeren om validatie uit te voeren door de CausesValidation-eigenschap in te stellen op false.

De syntaxis voor het maken van een Validation-servercontrole is:

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

In onderstaand voorbeeld hebben we in een .aspx-bestand een TextBox-knop, een Button-knop en een RangeValidator-knop gedeclareerd. Als de validatie mislukt, wordt de tekst "De waarde moet tussen 1 en 100 liggen!" weergegeven in de RangeValidator-knop:

<html>
<body>
<form runat="server">
<p>Voer een getal in van 1 tot 100:
<asp:TextBox id="tbox1" runat="server" />
<br /><br />
<asp:Button Text="Indienen" runat="server" />
</p>
<p>
<asp:RangeValidator
ControlToValidate="tbox1"
MinimumValue="1"
MaximumValue="100"
Type="Integer"
Text="De waarde moet tussen 1 en 100 liggen!"
runat="server" />
</p>
</form>
</body>
</html>

Toon dit voorbeeld