ASP.NET - serverkontrol

Serverkontroller er mærker, der forstås af serveren.

Begrænsningerne i Classic ASP

Følgende kode er kopieret fra det forrige afsnit:

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

Koden ovenfor afspejler begrænsningerne i Classic ASP: kodeblokke skal placeres på steder, hvor der skal udgives noget.

Gennem Classic ASP kan vi ikke adskille udførbart kode fra HTML selv. Dette gør siderne svære at læse og vedligeholde.

ASP.NET - serverkontrol

Gennem serverkontroller har ASP.NET løst problemet med "spaghetti-kode", der er beskrevet ovenfor.

Serverkontroller er mærker, der forstås af serveren.

Der er tre typer serverkontroller:

  • HTML-serverkontrol - traditionelle HTML-mærker
  • Web-serverkontroller - nye ASP.NET-mærker
  • Validation-serverkontrol - brugt til inputvalidering

ASP.NET - HTML-serverkontrol

HTML-serverkontroller er HTML-mærker, der forstås af serveren.

HTML-elementer i ASP.NET behandles som tekst. For at gøre disse elementer programmerbare skal der tilføjes runat="server"-egenskabenDenne egenskab indikerer, at dette element er en serverkontrol. Det skal også tilføjes en id-egenskab for at identificere denne serverkontrol. Denne id kan bruges til at operere med serverkontrollen under kørslen.

Kommentar:Alle HTML server kontroller skal placeres inden for en <form>-etiket med runat="server"-egenskaben. runat="server"-egenskaben indikerer, at formularen skal behandles på serveren. Den indikerer også, at kontrollerne, der er inkluderet, kan tilgås af serverkoden.

I nedenstående eksempel har vi deklareret en HtmlAnchor server kontrol i .aspx-filen. Derefter har vi opereret på HtmlAnchor kontrollens HRef-egenskab i en eventhandler. Page_Load-eventet er en type af de mange ASP.NET-forståelige events:

Kommentar:En eventhandler (eventhåndterer) er en underproces, der udfører kode til et givet 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">Besøg CodeW3C.com!</a>
</form>
</body>
</html>

Tip:Kode kaneksel er blevet flyttet uden for HTML.

ASP.NET - Web server kontrol

Web server kontroller er specielle ASP.NET-mærker, der kan forstås af serveren.

Ligesom HTML server kontroller oprettes Web server kontroller også på serveren, de har også brug for runat="server"-egenskaben for at blive aktiveret. Dog er der ingen nødvendighed for at mappe eksisterende HTML-elementer for Web server kontroller, de repræsenterer mere komplekse elementer.

Syntaksen til at oprette en Web server kontrol er:

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

I nedenstående eksempel har vi deklareret en Button server kontrol i .aspx-filen. Derefter har vi oprettet en eventhandler til Click-eventet, der kan ændre teksten på knappen:

<script runat="server">
Sub submit(Source As Object, e As EventArgs)
button1.Text="Du klikkede mig!"
End Sub
</script>
<html>
<body>
<form runat="server">
<asp:Button id="button1" Text="Klik mig!" runat="server" OnClick="submit"/>
</form>
</body>
</html>

ASP.NET - Validation server kontrol

Validation server kontrol bruges til at validere brugerinput. Hvis brugerinputtet ikke godkendes, vises der en fejlmeddelelse til brugeren.

Hver valideringskontrol udfører en bestemt valideringstyppe (f.eks. validering af en bestemt værdi eller et bestemt interval af værdier).

Standardmæssigt udføres sidevalidering, når du klikker på Button, ImageButton eller LinkButton. Du kan forhindre, at en bestemt knapkontrol valideres ved at sætte CausesValidation-attributten til false.

Sytten for at oprette en Validation-serverkontrol er:

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

I nedenstående eksempel har vi deklareret en TextBox-kontrol, en Button-kontrol og en RangeValidator-kontrol i en .aspx-fil. Hvis valideringen fejler, vil teksten "Værdien skal være fra 1 til 100!" vises i RangeValidator-kontrollen:

<html>
<body>
<form runat="server">
Indtast et tal fra 1 til 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="Værdien skal være fra 1 til 100!"
runat="server" />
</p>
</form>
</body>
</html>

Vis dette eksempel