Formulaire ASP Dotnet

Si vous utilisez déjà des formulaires dans d'autres langages comme php, vous allez être perturbé en ASP.NET. Pour vous en rendre compte, il vous suffit de regarder le contenu d'une page créée par Visual Studio :

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>

</div>
</form>
</body>
</html>

 

Toutes les pages en ASP.NET sont basées sur un formulaire. Quelques petites règles à respecter pour les pages ASP.NET :

  • La page ne peut contenir qu'un seul élément form.
  • L'élément form doit contenir l'attribut runat, dont la valeur doit être server. Cet attribut vous permet d'accéder au contrôle depuis votre code server (appelé code behind).
  • Les contrôles serveur asp.net que vous souhaitez atteindre depuis le code behind doivent être placés dans l'élément form.
  • La balise d'ouverture ne doit pas contenir d'attribut action. ASP.NET définit ces attributs dynamiquement lorsque la page est traitée, en substituant tous vos paramétrages éventuels.

Formulaire simple

Pour vous illustrer la création d'un formulaire en asp.net, nous allons développer une inscription simple de son adresse email. Pour cela entre les balises form de la page ci-dessous, nous allons ajouter le code suivant :

<asp:Label ID="Label1" runat="server" Text="Votre email : "></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Enregistrer" onclick="Button1_Click" />
<asp:Label ID="Label2" runat="server" Text=""></asp:Label>

Dans le code précédent, vous remarquerez que le code ressemble à du HTML, mais ce ne sont pas des balises HTML. Ce sont des contrôles ASP.NET. L'avantage des contrôles ASP.NET c'est qu'ils sont manipulables depuis le code behind. L'inconvénient c'est que Microsoft à définit un code HTML généré lors de la transformation du contrôle en code HTML.

Souvent très critique et non compatible avec les standards du web. Il est également possible d'utiliser les balises HTML standards, si vous souhaitez les manipuler depuis le code behind il faut y ajouter runat="server" en attribut à la balise HTML.

Exemple :

<div runat="server">Texte</div>

Lorsque l'on clique sur le bouton enregistrer, on va récupérer l'adresse email puis afficher le message suivant :
« Votre [EMAIL_SAISI] a été enregistré »
Pour cela voici le code behind à mettre en place :

protected void Button1_Click(object sender, EventArgs e)
{
Label2.Text = "Votre " + TextBox1.Text + " a été enregistré";
}

 

Quelques explications sur le code précédent. La méthode Button1_Click est appelée lorsque l'internaute va cliquer sur le bouton Enregistrer.

Dans cette méthode, nous affectons à la propriété Text du contrôle Label2 une chaine de caractères avec en partie l'email récupéré dans le TextBox du formulaire à l'aide de la propriété Text du contrôle TextBox1.

A propos de l'auteur

Sébastien Houzet

Sébastien Houzet est un passionné d'internet depuis 1998. Il peut vous accompagner sur les projets Web.