I controlli server sono tag che sono capiti dal server.
Limitazioni in Classic ASP
L'elenco qui sotto è stato copiato dal capitolo precedente:
<html>
<body bgcolor="yellow">
<center>
<h2>Hello w3ii!</h2>
<p> <%Response.Write(now())%> </p>
</center>
</body>
</html>
Il codice di cui sopra illustra una limitazione in Classic ASP: Il blocco di codice deve essere posizionato dove si desidera visualizzare l'output.
Con Classic ASP è impossibile separare il codice eseguibile dal codice HTML stesso. Questo rende la pagina di difficile lettura, e difficile da mantenere.
Controlli server - ASP.NET
ASP.NET ha risolto il "spaghetti-code" problema descritto in precedenza con controlli server.
I controlli server sono tag che sono capiti dal server.
Ci sono tre tipi di controlli server:
- I controlli server HTML - tag HTML tradizionali
- Controlli server Web - Nuovi tag ASP.NET
- Controlli server di convalida - per la convalida di ingresso
Controlli HTML del server - ASP.NET
controlli server HTML sono tag HTML compresi dal server.
elementi HTML in file di ASP.NET sono, per impostazione predefinita, trattati come testo. Per rendere questi elementi programmabili, aggiungere un attributo runat = "server" per l'elemento HTML. Questo attributo indica che l'elemento deve essere trattato come un controllo server. L' id attributo viene aggiunto per identificare il controllo server. Il riferimento id può essere utilizzato per manipolare il controllo server in fase di esecuzione.
Note: Tutti i controlli server HTML devono essere all'interno di un <form> tag con il runat="server" attributo. Il runat="server" attributo indica che il modulo deve essere elaborata dal server. Esso indica inoltre che i controlli in dotazione è possibile accedere da script server.
Nel seguente esempio dichiariamo un controllo server HtmlAnchor in un file aspx. Poi si manipolano la HRef attributo del controllo HtmlAnchor in un gestore eventi (an event handler is a subroutine that executes code for a given event) . L'evento Page_Load è uno dei tanti eventi che ASP.NET capisce:
<script runat="server">
Sub Page_Load
link1.HRef="http://www.w3ii.com"
End Sub
</script>
<html>
<body>
<form runat="server">
<a id="link1" runat="server">Visit w3ii!</a>
</form>
</body>
</html>
Il codice eseguibile stesso è stato spostato al di fuori del codice HTML.
ASP.NET - Controlli server Web
controlli server Web ASP.NET sono tag speciali compresi dal server.
Come controlli server HTML, controlli server Web vengono creati anche sul server e richiedono un attributo runat = "server" per lavorare. Tuttavia, i controlli server Web non necessariamente mappa di tutti gli elementi HTML esistenti e possono rappresentare elementi più complessi.
La sintassi per la creazione di un controllo server Web è:
<asp:control_name id="some_id" runat="server" />
Nel seguente esempio dichiariamo un controllo server Button in un file aspx. Quindi creiamo un gestore di eventi per l'evento Click che cambia il testo sul pulsante:
<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>
Controlli di convalida del server - ASP.NET
controlli server di convalida vengono utilizzati per convalidare gli input degli utenti. Se l'utente-input non passa la convalida, verrà visualizzato un messaggio di errore per l'utente.
Ogni controllo di convalida esegue un tipo specifico di convalida (come convalida contro un valore specifico o un intervallo di valori).
Per impostazione predefinita, la convalida pagina viene eseguita quando un pulsante, ImageButton, o il controllo LinkButton viene cliccato. È possibile impedire la convalida quando un controllo pulsante viene premuto impostando la proprietà CausesValidation su false.
La sintassi per la creazione di un controllo server di convalida è:
<asp:control_name id="some_id" runat="server" />
Nel seguente esempio dichiariamo un controllo TextBox, un controllo Button e un controllo RangeValidator in un file aspx. Se la convalida non riesce, il testo "The value must be from 1 to 100!" verrà visualizzato nel controllo RangeValidator:
Esempio
<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>
Visualizza l'esempio »