Vue d’ensemble des contrôles serveur ASP.NET

Cet article présente les contrôles serveur ASP.NET, tels que les contrôles serveur HTML, les contrôles serveur Web, les contrôles de liste, etc.

              Version d’origine du produit : ASP.NET
Numéro de la base de connaissances d’origine : 306459

Cet article fait référence aux espaces de noms de bibliothèque de classes Microsoft .NET Framework suivants :

  • System.Web.UI.HtmlControls.HtmlControl
  • System.Web.UI.WebControls.WebControl

Contrôles serveur dans ASP.NET framework de page

L’infrastructure de page ASP.NET comprend un certain nombre de contrôles serveur intégrés qui sont conçus pour fournir un modèle de programmation plus structuré pour le web. Ces contrôles fournissent les fonctionnalités suivantes :

  • Gestion automatique de l’état.
  • Accès simple aux valeurs d’objet sans avoir à utiliser l’objet Request .
  • Capacité à réagir aux événements dans le code côté serveur pour créer des applications mieux structurées.
  • Approche courante de la création d’interfaces utilisateur pour les pages web.
  • La sortie est automatiquement personnalisée en fonction des fonctionnalités du navigateur.

En plus des contrôles intégrés, l’infrastructure de page ASP.NET permet également de créer des contrôles utilisateur et des contrôles personnalisés. Les contrôles utilisateur et les contrôles personnalisés peuvent améliorer et étendre les contrôles existants pour créer une interface utilisateur beaucoup plus riche.

Contrôles serveur HTML

Les contrôles serveur HTML sont des éléments HTML qui incluent un runat=server attribut. Les contrôles serveur HTML ont la même sortie HTML et les mêmes propriétés que leurs balises HTML correspondantes. En outre, les contrôles serveur HTML fournissent une gestion automatique de l’état et des événements côté serveur. Les contrôles serveur HTML offrent les avantages suivants :

  • Les contrôles serveur HTML sont mappés un à un avec leurs balises HTML correspondantes.
  • Lorsque l’application ASP.NET est compilée, les contrôles serveur HTML avec l’attribut runat=server sont compilés dans l’assembly.
  • La plupart des contrôles incluent un OnServerEvent pour l’événement le plus couramment utilisé pour le contrôle. Par exemple, le <input type=button> contrôle a un OnServerClick événement .
  • Les balises HTML qui ne sont pas implémentées en tant que contrôles serveur HTML spécifiques peuvent toujours être utilisées côté serveur ; toutefois, ils sont ajoutés à l’assembly en tant que HtmlGenericControl.
  • Lorsque la page ASP.NET est reposée, les contrôles serveur HTML conservent leurs valeurs.

La System.Web.UI.HtmlControls.HtmlControl classe de base contient toutes les propriétés communes. Les contrôles serveur HTML dérivent de cette classe.

Pour utiliser un contrôle serveur HTML, utilisez la syntaxe suivante (qui utilise le HtmlInputText contrôle comme exemple) :

<input type="text" value="hello world" runat=server />

Pour plus d’informations sur les contrôles serveur HTML individuels disponibles dans ASP.NET, consultez les sites Web suivants :

Contrôles de serveur web

Les contrôles web sont similaires aux contrôles serveur HTML tels que Button, TextBox et Hyperlink, sauf que les contrôles Web ont un ensemble standardisé de noms de propriétés. Les contrôles de serveur web offrent les avantages suivants :

  • Permettre aux fabricants et aux développeurs de créer plus facilement des outils ou des applications qui génèrent automatiquement l’interface utilisateur.
  • Simplifiez le processus de création de formulaires Web interactifs, qui nécessite moins de connaissances sur le fonctionnement des contrôles HTML et rendent la tâche de les utiliser moins sujette aux erreurs.

La System.Web.UI.WebControls.WebControl classe de base contient toutes les propriétés communes. La plupart des contrôles serveur Web dérivent de cette classe.

Pour utiliser un contrôle serveur Web, utilisez la syntaxe suivante (qui utilise le contrôle TextBox comme exemple) :

<asp:textbox text="hello world" runat=server />

Les contrôles serveur web peuvent être divisés en quatre catégories :

  • Contrôles web de base
  • Contrôles de validation
  • Contrôles de liste
  • Contrôles enrichis

Contrôles web de base

Les contrôles Web de base fournissent les mêmes fonctionnalités que leurs équivalents de contrôle serveur HTML. Toutefois, les contrôles Web de base incluent des méthodes, des événements et des propriétés supplémentaires sur lesquels vous pouvez programmer.

Pour plus d’informations sur les contrôles Web individuels disponibles dans ASP.NET, consultez les sites Web suivants :

Contrôles de validation

Les contrôles de validation sont utilisés pour valider les valeurs entrées dans d’autres contrôles de la page. Les contrôles de validation effectuent une validation côté client, une validation côté serveur, ou les deux, en fonction des fonctionnalités du navigateur dans lequel la page est affichée. Les contrôles de validation offrent les avantages suivants :

  • Vous pouvez associer un ou plusieurs contrôles de validation à chaque contrôle que vous souhaitez valider.
  • La validation est effectuée lors de l’envoi du formulaire de page.
  • Vous pouvez spécifier par programmation si la validation doit se produire, ce qui est utile si vous souhaitez fournir un bouton Annuler afin que l’utilisateur puisse quitter sans avoir à remplir les données valides dans tous les champs.
  • Les contrôles de validation détectent automatiquement si la validation doit être effectuée côté client ou côté serveur.

Remarque

Une validation côté client intercepte les erreurs avant qu’une opération de publication soit terminée. Par conséquent, si vous avez des combinaisons de contrôles de validation côté client et côté serveur sur une seule page, la validation côté serveur est préemptée en cas d’échec d’une validation côté client. Pour plus d’informations sur les contrôles de validation individuels disponibles dans ASP.NET, reportez-vous aux sites Web suivants :

Répertorier les contrôles

Les contrôles de liste sont des contrôles serveur Web spéciaux qui prennent en charge la liaison à des regroupements. Vous pouvez utiliser des contrôles de liste pour afficher des lignes de données dans un format personnalisé de modèle. Tous les contrôles de liste exposent les propriétés DataSource et DataMember, qui sont utilisées pour lier des collections.

Les contrôles de liste peuvent uniquement être liés à des collections qui prennent en charge les interfaces IEnumerable, ICollection ou IListSource. Par exemple, un exemple de page Visual C# .NET s’affiche comme suit :

<%@ Page Language="C#" %>
<script runat="server">
    Public void Page_Load()
    {
        String[] myStringArray = new String[] {"one","two","three"};
        rptr.DataSource = myStringArray;
        rptr.DataBind();
    }
</script>
<html>
    <body>
        <asp:repeater id=rptr runat="server">
            <itemtemplate><%# Container.DataItem %><br></itemtemplate>
        </asp:repeater>
    </body>
</html>

Un exemple de page .NET Visual Basic s’affiche comme suit :

<%@ Page Language="vb" %>
<script runat="server">
    public sub Page_Load()
        Dim myStringArray as String()
        myStringArray = new String() {"one","two","three"}
        rptr.DataSource = myStringArray
        rptr.DataBind()
    end sub
</script>
<html>
    <body>
        <asp:repeater id=rptr runat="server">
            <itemtemplate><%# Container.DataItem %><br></itemtemplate>
        </asp:repeater>
    </body>
</html>

La sortie s’affiche comme suit :

  • one
  • Deux
  • three

Pour plus d’informations sur les contrôles de liste individuels disponibles dans ASP.NET, consultez les sites Web suivants :

Contrôles enrichis

En plus des contrôles précédents, l’infrastructure de page ASP.NET fournit quelques contrôles spécifiques à la tâche appelés contrôles enrichis. Les contrôles enrichis sont générés avec plusieurs éléments HTML et contiennent des fonctionnalités enrichies. Le contrôle Calendar et le contrôle AdRotator sont des exemples de contrôles enrichis.

Pour plus d’informations sur les contrôles enrichis individuels disponibles dans ASP.NET, consultez les sites Web suivants :

Contrôles utilisateur

Souvent, vous souhaiterez peut-être réutiliser l’interface utilisateur de votre formulaire web sans avoir à écrire de code supplémentaire. ASP.NET vous permet de le faire en convertissant votre Web Forms en contrôles utilisateur. Les contrôles utilisateur, qui ont l’extension de fichier .ascx, peuvent être utilisés plusieurs fois dans un formulaire web unique.

Pour convertir un formulaire web en contrôle utilisateur, procédez comme suit :

  1. Supprimez toutes les <html>balises , <head>, <body>et <form> .
  2. Si la @ Page directive apparaît dans la page, remplacez-la par @ Control.
  3. Incluez un className attribut dans la @ Control directive afin que le contrôle utilisateur soit fortement typé lorsque vous l’instanciez.
  4. Donnez au contrôle un nom de fichier descriptif et remplacez l’extension de fichier .aspx par .ascx.

Pour plus d’informations sur les contrôles utilisateur, consultez Web Forms Contrôles utilisateur.

contrôles personnalisés

En plus des contrôles Web intégrés, ASP.NET vous permet également de créer vos propres contrôles personnalisés. Il peut être utile de développer des contrôles personnalisés si vous êtes confronté à l’un des scénarios suivants :

  • Vous devez combiner les fonctionnalités de deux ou plusieurs contrôles Web intégrés.
  • Vous devez étendre les fonctionnalités d’un contrôle intégré.
  • Vous avez besoin d’un contrôle différent de l’un des contrôles qui existent actuellement.

Pour plus d’informations sur le développement de contrôles personnalisés, consultez les rubriques suivantes :