ASP.NET Web Forms - Contrôles serveur


Les contrôles serveur sont des balises qui peuvent être comprises par le serveur.


Limites de l'ASP classique

Le code listé ci-dessous est copié depuis le chapitre précédent :

<html>
<body bgcolor="yellow">
<center>
<h2>Bonjour Exemple !</h2>
<p><%Response.Write(now())%></p>
</center>
</body>
</html>

Le code ci-dessus reflète les limitations de Classic ASP : les blocs de code doivent être placés là où vous souhaitez que la sortie soit affichée.

Avec Classic ASP, il est impossible de séparer le code exécutable de la page HTML. Cela rend la page difficile à lire et à maintenir.


ASP.NET - Contrôles serveur

ASP.NET a résolu le problème du « code spaghetti » ci-dessus grâce aux contrôles serveur.

Les contrôles serveur sont des balises qui peuvent être comprises par le serveur.

Il existe trois types de contrôles serveur :

  • Contrôles serveur HTML - balises HTML créées
  • Contrôles serveur Web - nouvelles balises ASP.NET
  • Contrôles serveur de validation - utilisés pour la validation des entrées

ASP.NET - Contrôles serveur HTML

Les contrôles serveur HTML sont des balises HTML qui peuvent être comprises par le serveur.

Les éléments HTML dans les fichiers ASP.NET sont traités comme du texte par défaut. Pour rendre ces éléments programmables, ajoutez l'attribut runat="server" à l'élément HTML. Cet attribut indique que l'élément sera traité comme un contrôle serveur. Vous devez également ajouter l'attribut id pour identifier le contrôle serveur. La référence id peut être utilisée pour manipuler le contrôle serveur au moment de l'exécution.

Remarque :Tous les contrôles serveur HTML doivent être à l'intérieur d'une balise <form> avec l'attribut runat="server". L'attribut runat="server" indique que le formulaire doit être traité sur le serveur. Il indique également que les contrôles qu'il contient sont accessibles aux scripts serveur.

Dans l'exemple suivant, nous déclarons un contrôle serveur HtmlAnchor dans le fichier .aspx. Ensuite, nous manipulons la propriété HRef du contrôle HtmlAnchor dans un gestionnaire d'événements (un gestionnaire d'événements est une sous-routine qui exécute du code pour un événement donné). L'événement Page_Load est l'un des nombreux événements pris en charge par ASP.NET :

<script runat="server">
Sub Page_Load
link1.HRef="http://www.example.com"
End Sub
</script>

<html>
<body>

<form runat="server">
Visitez EXAMPLE !
</form>

</body>
</html>

Le code exécutable lui-même a été déplacé hors du HTML.


ASP.NET - Contrôles serveur Web

Les contrôles serveur Web sont des balises ASP.NET spéciales qui peuvent être comprises par le serveur.

Comme les contrôles serveur HTML, les contrôles serveur Web sont créés sur le serveur et nécessitent également l'attribut runat="server" pour prendre effet. Toutefois, les contrôles serveur Web n'ont pas besoin de correspondre à des éléments HTML existants ; ils peuvent représenter des éléments plus complexes.

La syntaxe pour créer un contrôle serveur Web est :

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

Dans l'exemple suivant, nous déclarons un contrôle serveur Button dans le fichier .aspx. Ensuite, nous créons un gestionnaire d'événements pour l'événement Click afin de modifier le texte du bouton :

<script runat="server">
Sub submit(Source As Object, e As EventArgs)
button1.Text="Vous avez cliqué !"
End Sub
</script>

<html>
<body>

<form runat="server">
<asp:Button id="button1" Text="Cliquez-moi !"
runat="server" OnClick="submit"/>
</form>

</body>
</html>


ASP.NET - Contrôles serveur de validation

Les contrôles serveur de validation servent à valider la saisie de l'utilisateur. Si la saisie de l'utilisateur ne passe pas la validation, un message d'erreur sera affiché à l'utilisateur.

Chaque contrôle de validation effectue un type spécifique de validation (comme valider une valeur spécifique ou une plage de valeurs).

Par défaut, la validation de la page est effectuée lorsque les contrôles Button, ImageButton ou LinkButton sont cliqués. Vous pouvez définir CausesValidation sur false pour empêcher la validation d'être effectuée lorsque les contrôles de type bouton sont cliqués.

La syntaxe pour créer un contrôle serveur de validation est :

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

Dans l'exemple suivant, nous déclarons un contrôle TextBox, un contrôle Button et un contrôle RangeValidator dans le fichier .aspx. Si la validation échoue, le texte "La valeur doit être comprise entre 1 et 100 !" sera affiché dans le contrôle RangeValidator :

Exemples

<html>
<body>

<form runat="server">
<p>Entrez un nombre de 1 à 100 :
<asp:TextBox id="tbox1" runat="server" />
<br /><br />
<asp:Button Text="Envoyer" runat="server" />
</p>

<p>
<asp:RangeValidator
ControlToValidate="tbox1"
MinimumValue="1"
MaximumValue="100"
Type="Integer"
Text="La valeur doit être comprise entre 1 et 100 !"
runat="server" />
</p>
</form>

</body>
</html>
Autres extensions