Vue d'ensemble des contrôles d'extendeur ASP.NET AJAX

Mise à jour : novembre 2007

Les contrôles d'extendeur ASP.NET AJAX optimisent les fonctionnalités de client des contrôles serveur Web ASP.NET standard. Vous pouvez cibler des contrôles serveur Web standard tels que les contrôles TextBox, Button et Panel en utilisant un ou plusieurs contrôles d'extendeur pour fournir une expérience utilisateur plus riche dans le navigateur. Par exemple, pour permettre aux utilisateurs de valider un formulaire avant de le soumettre au serveur, vous pouvez utiliser un contrôle d'extendeur qui ajoute les fonctionnalités de client à un contrôle Button.

Vous pouvez ajouter des contrôles d'extendeur ASP.NET AJAX à Visual Studio et les utiliser comme d'autres contrôles. Vous pouvez créer vos propres contrôles d'extendeur ou les obtenir d'autres sources.

ASP.NET AJAX Control Toolkit constitue une source possible pour les contrôles d'extendeur. Control Toolkit fournit des exemples et un Kit de développement logiciel (SDK) pour faciliter la création et la réutilisation des contrôles personnalisés et des extendeurs. Vous pouvez télécharger ASP.NET AJAX Control Toolkit à partir du site Web ASP.NET AJAX.

Remarque importante :

ASP.NET AJAX Control Toolkit est une bibliothèque prise en charge par la communauté et non pas par Microsoft. Cette rubrique décrit les contrôles d'extendeur du Control Toolkit pour illustrer l'utilisation des contrôles d'extendeur par des exemples. Toutefois, les informations fournies dans cette rubrique n'impliquent pas que les contrôles d'extendeur qu'elle décrit font officiellement partie d'ASP.NET ou qu'ils sont des contrôles pris en charge.

Cette rubrique contient des informations sur :

  • Fonctionnalités de contrôle d'extendeur AJAX

  • Contexte

  • Référence de classe

Fonctionnalités

Visual Studio prend en charge les fonctionnalités de contrôle d'extendeur suivantes :

  • Ajout de contrôles d'extendeur

  • Suppression de contrôles d'extendeur

  • Définition des propriétés de contrôle d'extendeur

  • Gestion de contrôles d'extendeur

Retour au début

Contexte

Les contrôles d'extendeur peuvent être utilisés pour optimiser les fonctionnalités de client des contrôles serveur Web standard. Les contrôles d'extendeur ne doivent pas être utilisés seuls. Ils doivent en revanche être attachés à un autre contrôle serveur Web ASP.NET. Les contrôles d'extendeur sont attachés à un contrôle serveur Web en attribuant à la propriété TargetControlID du contrôle d'extendeur l'ID du contrôle serveur étendu.

Utilisation de contrôles d'extendeur dans Visual Studio

Si vous installez ASP.NET AJAX Control Toolkit, les contrôles d'extendeur sont répertoriés dans un onglet distinct de la Boîte à outils. La section de contrôle d'extendeur de la Boîte à outils s'affiche uniquement pour les pages Web, tout comme avec la section Standard de la Boîte à outils.

Remarque :

ASP.NET AJAX Control Toolkit est une bibliothèque prise en charge par la communauté. Il ne fait pas partie d'ASP.NET.

Ajout de contrôles d'extendeur

Vous pouvez utiliser les méthodes suivantes pour ajouter des contrôles d'extendeur à un contrôle serveur Web en mode Design :

  • Faites glisser le contrôle d'extendeur sur le contrôle serveur Web. Vous pouvez uniquement déposer le contrôle d'extendeur sur les contrôles serveur Web qui prennent en charge des contrôles d'extendeur. En faisant glisser le contrôle d'extendeur sur l'aire de conception, le pointeur indique si vous pouvez le déposer sur le contrôle serveur Web.

  • Cliquez avec le bouton droit sur le contrôle serveur Web puis cliquez sur Ajouter un extendeur.

  • Sélectionnez la balise active Tâches Button, puis cliquez sur Ajouter un extendeur.

    Remarque :

    En mode Design, les contrôles d'extendeur ne sont pas affichés ordinairement. Toutefois, si une erreur liée à un contrôle d'extendeur se produit, le contrôle d'extendeur est affiché.

Lorsque vous ajoutez un extendeur dans le concepteur, la propriété TargetControlID du contrôle d'extendeur a pour valeur le contrôle serveur Web attaché. Le nom du contrôle d'extendeur est basé sur le nom du contrôle serveur Web auquel il est attaché.

Un contrôle d'extendeur peut prendre en charge des éléments de l'interface utilisateur que vous pouvez configurer. Dans ce cas, ces éléments peuvent être définis à l'aide d'un menu de balises actives du contrôle serveur Web étendu.

Le contrôle d'extendeur n'est pas affiché sur l'aire de conception lorsqu'il est attaché à un contrôle cible. Si le contrôle d'extendeur n'est pas attaché à un contrôle cible, ou si l'association ne peut pas être déterminée au moment du design, le contrôle d'extendeur est affiché en tant qu'espace réservé sur l'aire de conception. Les scénarios dans lesquels un tel résultat peut se produire incluent les suivants :

  • La propriété TargetControlID est vide.

  • La propriété TargetControlID ne correspond pas à un contrôle existant.

  • La propriété TargetControlID fait référence à un contrôle qui ne peut pas être étendu par le contrôle d'extendeur.

Si le contrôle d'extendeur est attaché à un contrôle cible valide, Visual Studio masque les propriétés de contrôle d'extendeur suivantes dans la fenêtre Propriétés :

  • TargetControlID

  • EnableViewState (hérité de Control)

  • ID (hérité de Control)

Pour plus d'informations sur l'ajout de contrôles d'extendeur aux contrôles serveur Web, consultez Procédure pas à pas : contrôles d'extendeur ASP.NET AJAX.

Suppression de contrôles d'extendeur

Vous pouvez supprimer l'association entre un contrôle d'extendeur et un contrôle serveur Web en procédant de la manière suivante :

  • En mode Design, cliquez avec le bouton droit sur le contrôle serveur Web, cliquez sur Supprimer un extendeur, puis sélectionnez le contrôle d'extendeur à supprimer.

  • En mode Design, sélectionnez la balise active Tâches Button, cliquez sur Supprimer un extendeur, puis sélectionnez le contrôle d'extendeur à supprimer.

  • Supprimez la balise de contrôle d'extendeur en mode Source.

Contrôles d'extendeur et contrôle ScriptManager

Les contrôles d'extendeur qui dérivent de la classe ExtenderControl nécessitent un contrôle ScriptManager dans la page. La classe de base ExtenderControl exécute un test pour s'assurer qu'un contrôle ScriptManager existe dans la page.

Toutefois, si vous voulez créer un contrôle d'extendeur alors la page ne contient pas de contrôle ScriptManager, vous pouvez créer une classe qui implémente directement l'interface IExtenderControl. En outre, si vous créez une classe qui dérive de Control ou que vous étendez un contrôle existant qui dérive de Control, vous pouvez implémenter vous-même l'interface IExtenderControl.

L'interface IExtenderControl enregistre les bibliothèques de scripts d'un contrôle en appelant la méthode GetScriptReferences. Elle enregistre les objets ScriptDescriptor en appelant la méthode GetScriptDescriptors. Cette méthode GetScriptDescriptors retourne une liste IEnumerable d'objets ScriptDescriptor.

Remarque :

Si vous étendez un type de contrôle existant qui est dérivé de la classe WebControl, implémentez l'interface IScriptControl.

Pour plus d'informations sur la création d'un contrôle d'extendeur ASP.NET AJAX, consultez Ajout de fonctionnalités clientes à un contrôle serveur Web.

Contrôles d'extendeur dans AJAX Control Toolkit

Le tableau suivant décrit certains des contrôles d'extendeur AJAX qui sont disponibles dans ASP.NET AJAX Control Toolkit.

Remarque :

ASP.NET AJAX Control Toolkit est une bibliothèque prise en charge par la communauté. Il ne fait pas partie d'ASP.NET. Le contenu de la bibliothèque et les fonctionnalités de chaque contrôle sont susceptibles d'être modifiés.

Contrôle d'extendeur AJAX

Description

CascadingDropDown

Remplit dynamiquement un contrôle DropDownList, selon la sélection dans un autre contrôle DropDownList. Ce contrôle d'extendeur s'attache à un contrôle DropDownList.

Lorsque la sélection d'un contrôle DropDownList est modifiée, le contrôle d'extendeur CascadingDropDown appelle un service Web spécifié afin de récupérer une liste de valeurs utilisée pour remplir le DropDownList suivant dans le jeu.

CollapsiblePanelExtender

Active des sections réductibles à ajouter à une page Web.

Ce contrôle d'extendeur s'attache à un contrôle UpdatePanel.

Vous pouvez spécifier un contrôle serveur Web qui peut développer ou réduire le contrôle UpdatePanel. UpdatePanel peut également être configuré pour se développer ou se réduire automatiquement lorsqu'il est survolé par le pointeur.

ConfirmButtonExtender

Affiche une zone de message de confirmation après avoir cliqué sur un contrôle Button, mais avant de soumettre la page ou UpdatePanel au serveur. Si les utilisateurs annulent, la page n'est pas envoyée.

Ce contrôle d'extendeur s'attache à un contrôle Button.

FilteredTextBoxExtender

Empêche les utilisateurs de taper des caractères spécifiques dans un contrôle TextBox.

Ce contrôle d'extendeur s'attache à un contrôle TextBox.

ModalPopupExtender

Permet d'afficher le contenu tout en interdisant à l'utilisateur d'agir sur le reste de la page.

Ce contrôle d'extendeur s'attache à tout contrôle serveur Web qui peut être utilisé pour ouvrir la fenêtre modale.

PasswordStrength

Affiche la force d'un mot de passe.

Ce contrôle d'extendeur s'attache à un contrôle TextBox.

RoundedCornersExtender

Applique des angles arrondis aux éléments existants.

Ce contrôle d'extendeur s'attache généralement à un contrôle Panel.

TextBoxWatermarkExtender

Affiche un message à l'intérieur d'un contrôle TextBox lorsque la zone de texte ne contient pas de valeur de texte.

Ce contrôle d'extendeur s'attache à un contrôle TextBox.

Définition des propriétés de contrôle d'extendeur

Vous pouvez définir des propriétés de contrôle d'extendeur dans la fenêtre Propriétés. Certains contrôles d'extendeur fournissent également des éléments d'interface supplémentaires auxquels vous pouvez accéder à travers le menu de balise active du contrôle serveur Web.

Lorsqu'un contrôle serveur Web est étendu, la fenêtre Propriétés affiche une nouvelle catégorie nommée Extendeurs. Dans cette section, une nouvelle propriété multiniveau est indiquée pour chaque contrôle d'extendeur ajouté au contrôle serveur Web. Chaque contrôle d'extendeur fournit des propriétés uniques qui sont spécifiques au contrôle.

Pour plus d'informations sur la définition des propriétés de contrôle serveur Web, consultez Comment : activer la fenêtre Propriétés dans Visual Web Developer.

Gestion de contrôles d'extendeur

Les contrôles d'extendeur n'affichent pas directement l'interface utilisateur en mode Design et, de ce fait, doivent être gérés dans le cadre du contrôle auquel ils ont été ajoutés. Si le contrôle serveur Web est déplacé vers un endroit différent ou mis à l'intérieur d'un autre contrôle, les contrôles d'extendeur attachés sont déplacés.

Le balisage du contrôle d'extendeur est inclus directement après le balisage du contrôle serveur Web. Si plusieurs contrôles d'extendeur sont attachés à un contrôle serveur Web, l'ordre des contrôles d'extendeur est maintenu pendant tout déplacement. Cela réduit les possibilités de conflit au moment de l'exécution.

Lorsqu'un contrôle serveur Web avec contrôles d'extendeur attachés est supprimé de l'aire de conception, les extendeurs associés le sont également. Si vous modifiez la propriété ID d'un contrôle serveur Web avec contrôles d'extendeur attachés dans la fenêtre Propriétés, la propriété TargetControlID et la propriété ID des contrôles d'extendeur sont mises à jour en conséquence.

Remarque :

Si un extendeur a un ID personnalisé (que vous avez-vous-même fourni par exemple), la propriété ID n'est pas modifiée lorsque la propriété ID de tout contrôle serveur Web associé est modifiée.

Si un contrôle serveur Web avec contrôles d'extendeur attachés est coupé ou copié vers le Presse-papiers, la copie inclut les contrôles d'extendeur associés dans le Presse-papiers. Ils sont copiés sous forme de balisage et suivent immédiatement le contrôle. Cela se produit même si le balisage d'extendeur n'est pas contigu au contrôle dans la source. Lorsque le contrôle serveur Web est collé, les contrôles d'extendeur le sont également.

Si une erreur est introduite dans le balisage d'un contrôle d'extendeur, elle s'accompagne d'un message qui déclare une « erreur de rendu de contrôle » en mode Design. Pour résoudre cette erreur, corrigez la balise en mode Source.

Retour au début

Référence de classe

Les classes de serveur clés pour le contrôle d'extendeur sont répertoriées dans le tableau suivant.

Classe

Description

ExtenderControl

Fournit une classe de base abstraite pour un contrôle d'extendeur.

IExtenderControl

Définit le comportement pour un contrôle d'extendeur.

Retour au début

Voir aussi

Tâches

Procédure pas à pas : contrôles d'extendeur ASP.NET AJAX