ASP.NET - Controllo del server

I controlli del server sono etichette comprensibili dal server.

Limitazioni di Classic ASP

Di seguito è riportato il codice copiato dal paragrafo precedente:

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

Il codice sopra elencato riflette le limitazioni di Classic ASP: i blocchi di codice devono essere posizionati nei punti in cui si desidera eseguire l'output.

Con Classic ASP, non possiamo separare il codice eseguibile dall'HTML stesso. Questo rende le pagine difficile da leggere e da mantenere.

ASP.NET - Controllo del server

Grazie ai controlli del server, ASP.NET ha risolto il problema del "codice a spaghetti" descritto in precedenza.

I controlli del server sono etichette comprensibili dal server.

Ci sono tre tipi di controlli del server:

  • Controllo HTML del server - etichetta HTML tradizionale
  • Controllo del server web - nuovi etichetta ASP.NET
  • Controllo del server di validazione - utilizzato per la convalida degli input

ASP.NET - Controllo HTML del server

Un controllo HTML del server è un etichetta HTML comprensibile dal server.

Gli elementi HTML in ASP.NET vengono trattati come testo. Per rendere questi elementi programmabili, è necessario aggiungere Attributo runat="server"Questa proprietà indica che questo elemento è un controllo del server. Inoltre, è necessario aggiungere l'attributo id per identificare il controllo del server. Questo id può essere utilizzato per operare sui controlli del server durante l'esecuzione.

Note:Tutti i controlli del server HTML devono essere posizionati all'interno del tag <form> con l'attributo runat="server". L'attributo runat="server" indica che il modulo dovrebbe essere elaborato sul server. Indica anche che i controlli inclusi possono essere acceduti da script sul server.

Nel seguente esempio, abbiamo dichiarato un controllo del server HtmlAnchor nel file .aspx. Poi abbiamo manipolato l'attributo HRef del controllo HtmlAnchor in un gestore di eventi. L'evento Page_Load è uno dei tanti eventi comprensibili da ASP.NET:

Note:Un gestore di eventi (event handler) è una subroutine che esegue codice per un evento specifico.

<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">Visita CodeW3C.com!</a>
</form>
</body>
</html>

Suggerimento:Il codice eseguibile è stato spostato al di fuori dell'HTML.

ASP.NET - Controlli del server Web

I controlli del server Web sono etichette speciali ASP.NET comprensibili dal server.

Similmente ai controlli del server HTML, i controlli del server Web vengono creati sul server, necessitano anche dell'attributo runat="server" per funzionare. Tuttavia, i controlli del server Web non devono mappare alcun elemento HTML esistente, rappresentano elementi più complessi.

La sintassi per creare un controllo del server Web è:

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

Nel seguente esempio, abbiamo dichiarato un controllo del server Button nel file .aspx. Poi abbiamo creato un gestore di eventi per l'evento Click, che può modificare il testo sul pulsante:

<script runat="server">
Sub submit(Source As Object, e As EventArgs)
button1.Text="Hai cliccato me!"
End Sub
</script>
<html>
<body>
<form runat="server">
<asp:Button id="button1" Text="Clicca me!" runat="server" OnClick="submit"/>
</form>
</body>
</html>

ASP.NET - Controllo del server di validazione

Il controllo del server di validazione viene utilizzato per verificare l'input dell'utente. Se l'input dell'utente non supera la validazione, verrà visualizzato un messaggio di errore all'utente.

Ogni controllo di validazione esegue un tipo di validazione specifico (ad esempio, la validazione di un valore specifico o di un intervallo di valori).

Per impostazione predefinita, quando si clicca su Button, ImageButton o LinkButton, viene eseguita la validazione della pagina. Puoi impedire che un pulsante controllo venga validato quando viene cliccato impostando l'attributo CausesValidation su false.

La sintassi per creare un controllo di validazione server è:

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

Nell'esempio seguente, abbiamo dichiarato un controllo TextBox, un controllo Button e un controllo RangeValidator nel file .aspx. Se la validazione fallisce, il testo "Il valore deve essere tra 1 e 100!" verrà visualizzato nel controllo RangeValidator:

<html>
<body>
<form runat="server">
<p>Inserisci un numero tra 1 e 100:
<asp:TextBox id="tbox1" runat="server" />
<br /><br />
<asp:Button Text="Invia" runat="server" />
</p>
<p>
<asp:RangeValidator
ControlToValidate="tbox1"
MinimumValue="1"
MaximumValue="100"
Type="Integer"
Text="Il valore deve essere tra 1 e 100!"
runat="server" />
</p>
</form>
</body>
</html>

Mostra questo esempio