Les contrôles sont de petits blocs fonctionnels dans une interface utilisateur graphique qui incluent des zones de texte, des boutons, des cases à cocher, des zones de liste, des étiquettes et de nombreux autres outils. Grâce à ces outils, les utilisateurs peuvent saisir des données, effectuer des sélections et indiquer leurs préférences.
Les contrôles sont également utilisés pour des travaux structurels tels que la validation, l'accès aux données, la sécurité, la création de pages maîtres et la manipulation des données.
ASP.NET utilise cinq types de contrôles Web, à savoir :
Contrôle HTML
Contrôle du serveur HTML
Contrôles du serveur ASP.NET
Contrôle du serveur ASP.NET Ajax
Contrôles utilisateur et contrôles personnalisés
Les contrôles serveur ASP.NET sont les principaux contrôles utilisés dans ASP.NET. Ces contrôles peuvent être répartis dans les catégories suivantes :
Contrôles de validation : utilisés pour valider les entrées et le travail de l'utilisateur en exécutant des scripts côté client.
Contrôle de source de données : fournit des capacités de liaison de données à différentes sources de données.
Contrôle d'affichage des données : ce contrôle est une variété de listes et de tableaux pouvant afficher des données liées à une source de données.
Contrôles de personnalisation - Personnalisez les pages en fonction des informations utilisateur en fonction des préférences de l'utilisateur.
Contrôles de connexion et de sécurité - Fournit l'authentification des utilisateurs.
Page maître : fournit une mise en page et une interface cohérentes dans l'ensemble de l'application.
Commandes de navigation : aident les utilisateurs à naviguer. Par exemple, menu, arborescence, etc.
Contrôles de fonctions riches - Implémentez des fonctions spéciales. Par exemple : contrôles AdRotator, FileUpload et Calendar.
La syntaxe de base pour l'utilisation des contrôles serveur est la suivante :
<asp:controlType ID ="ControlID" runat="server" Property1=value1 [Property2=value2] />
De plus, Visual Studio dispose des fonctionnalités suivantes pour aider à produire du code sans erreur :
Faites glisser et déposez les contrôles en mode Création.
Capacités IntelliSense pour les fonctionnalités d’affichage et de saisie semi-automatique.
Fenêtre Propriétés pour définir directement les valeurs des propriétés.
Les contrôles serveur ASP.NET dotés de fonctionnalités visuelles sont dérivés de la classe WebControl et héritent de toutes les propriétés, événements et méthodes de cette classe.
La classe WebControl elle-même et les autres contrôles serveur qui ne disposent pas de fonctionnalités visuelles sont dérivés de la classe System.Web.UI.Control. Par exemple, un contrôle PlaceHolder ou un contrôle XML.
Les contrôles serveur ASP.Net héritent de toutes les propriétés, événements et méthodes des classes WebControl et System.Web.UI.Control.
Le tableau suivant présente les propriétés communes à tous les contrôles serveur :
propriété | décrire |
---|---|
Clé d'accès | Appuyez simultanément sur cette touche et sur la touche Alt pour déplacer le focus sur le contrôle. |
Attributs | Il s'agit d'un ensemble de propriétés arbitraires qui ne correspondent pas aux propriétés de contrôle (utilisées uniquement pour le rendu des vues). |
Couleur du dos | Couleur de fond. |
Conteneur de liaison | Contient des contrôles liés aux données. |
Couleur de la bordure | Couleur de la bordure. |
Style de bordure | Style de bordure. |
Largeur de bordure | Largeur de bordure. |
CausesValidation | Affiché lorsque la vérification est provoquée. |
ChildControlCréé | Indique si les contrôles enfants du contrôle serveur sont établis. |
ID client | L'ID de contrôle de la balise HTML. |
Contexte | Objet HttpContext associé au contrôle serveur. |
Contrôles | Collection de tous les contrôles au sein du contrôle. |
Style de contrôle | Styles pour les contrôles du serveur Web. |
Classe CSS | Cours CSS. |
Conteneur d'éléments de données | Fournit une référence au nom s'il implémente un IDataItemContainer. |
Conteneur DataKeys | Fournit une référence pour le nom s'il implémente IDataKeysControl. |
Mode Conception | Indique si le contrôle est utilisé dans l'interface de conception. |
Classe CSS désactivée | Obtient ou définit la classe CSS à appliquer à l'élément HTML rendu lorsque le contrôle est désactivé. |
Activé | Indique si le contrôle est désactivé. |
Activer le thème | Indique si le thème s'applique au contrôle. |
ActiverViewState | Indique s’il faut conserver l’état d’affichage du contrôle. |
Événements | Obtient une liste de gestionnaires d'événements représentant le contrôle. |
Fonte | Paramètres de police. |
Précoloration | Couleur de premier plan. |
AAttributs | Indique si le contrôle possède des groupes de propriétés. |
HasChildViewState | Indique si les contrôles enfants du contrôle serveur actuel disposent de paramètres d’état d’affichage enregistrés. |
Hauteur | Hauteur en pixels ou en pourcentage. |
IDENTIFIANT | L'identifiant du contrôle. |
IsChildControlStateCleared | Indique si le contrôle contenu dans ce contrôle a un état de contrôle. |
EstEnabled | Obtient une valeur indiquant si le contrôle est activé. |
IsTrackingViewState | Indique si le contrôle serveur enregistrera les modifications apportées à son état d’affichage. |
IsViewStateEnabled | Indique si l’état d’affichage est activé pour ce contrôle. |
LoadViewStateById | Indique si le contrôle participe au chargement de son état d'affichage par ID plutôt que par index. |
Page | Page contenant le contrôle. |
Mère | Fonctionnalités de contrôle parental. |
Compatibilité de rendu | Spécifie la version d'ASP.NET avec laquelle le code HTML rendu sera compatible. |
Site | Le titulaire qui détient le contrôle actuel lorsque l'interface de conception est affichée. |
ID de peau | Obtient ou définit l’habillage appliqué au contrôle. |
Style | Obtient une collection de propriétés de texte qui seront affichées en tant que propriétés de style sur l'étiquette externe du contrôle serveur Web. |
TabIndex | Obtient ou définit l'étiquette d'index du contrôle serveur Web. |
Clé de balise | Obtient la valeur HtmlTextWriterTag correspondant à ce contrôle serveur Web. |
Nom de la balise | Obtient le nom de l’étiquette de contrôle. |
ModèleContrôle | Contient le modèle de ce contrôle. |
Répertoire SourceModèle | Obtient le répertoire virtuel de la page ou du contrôle contenu dans ce contrôle. |
Info-bulle | Obtient ou définit le texte affiché lorsque le pointeur de la souris se trouve sur le contrôle serveur Web. |
ID unique | Identifiant unique. |
État d'affichage | Obtient un dictionnaire d'informations d'état capable d'enregistrer et de restaurer l'état d'affichage du contrôle du serveur sur plusieurs requêtes sur la même page. |
ViewStateIgnoreCase | Indique si l'objet StateBag est insensible à la casse. |
ModeÉtat d'affichage | Obtient ou définit l'état d'affichage de ce contrôle. |
Visible | Indique si le contrôle serveur est visible. |
Largeur | Obtient ou définit la largeur du contrôle serveur Web. |
Les méthodes du contrôle serveur sont présentées dans le tableau suivant :
méthode | décrire |
---|---|
AddAttributesToRender | Ajoutez les attributs et styles HTML nécessaires pour afficher le HtmlTextWriterTag spécifié. |
Contrôle ajouté | Appelé après l’ajout d’un contrôle enfant à la collection de contrôles de l’objet contrôle. |
AddParsedSubObject | Avertit le contrôle serveur qu’un élément, XML ou HTML, a été analysé et ajoute l’élément à la collection de contrôles du contrôle serveur. |
AppliquerStyleSheetSkin | Applique les propriétés de style définies dans la feuille de style de page aux contrôles. |
ClearCachedClientID | infrastructure. Définissez la valeur ClientID mise en cache sur null. |
ClearChildControlState | Supprime les informations sur l’état du contrôle pour les contrôles enfants du contrôle serveur. |
EffacerÉtatEnfant | Supprime les informations sur l’état d’affichage et l’état du contrôle pour tous les contrôles enfants du contrôle serveur. |
ClearChildViewState | Supprime les informations sur l’état d’affichage pour tous les contrôles enfants de tous les contrôles serveur. |
Créer des contrôles enfants | Utilisé pour créer des contrôles enfants. |
CréerControlCollection | Créez une nouvelle collection de contrôles pour contenir les contrôles enfants. |
Créer un style de contrôle | Crée un objet de style qui implémente toutes les propriétés liées au style. |
Liaison de données | Liez la source de données au contrôle serveur et à tous ses contrôles enfants. |
DataBind (booléen) | Liez la source de données et les options qui déclenchent l’événement DataBinding au contrôle serveur et à tous ses contrôles enfants. |
DataBindEnfants | Liez la source de données à un contrôle enfant du contrôle serveur. |
Disposer | Permet à un contrôle serveur d’effectuer des opérations de nettoyage finales avant qu’il ne soit libéré de la mémoire. |
Assurer les contrôles des enfants | Détermine si le contrôle serveur contient des contrôles enfants. Sinon, créez un contrôle enfant. |
Assurer l'ID | Créez un identifiant pour un contrôle qui n'en possède pas. |
Égal à (Objet) | Détermine si l'objet spécifié est égal à l'objet actuel. |
Finaliser | Permet à un objet de tenter de libérer des ressources et d'effectuer d'autres opérations de nettoyage avant que l'objet ne soit récupéré par la Corbeille. |
RechercherContrôle(Chaîne) | Recherche dans le conteneur nommé actuel les contrôles serveur avec le paramètre id spécifié. |
FindControl (Chaîne, Int32) | Recherche dans le conteneur nommé actuel les contrôles serveur avec le paramètre id et l'entier spécifiés. |
Se concentrer | Définissez le focus d’entrée pour le contrôle. |
GetDesignModeState | Obtient les données au moment du design du contrôle. |
ObtenirType | Obtenez le type de l'instance actuelle. |
GetUniqueIDRelativeTo | Renvoie la partie préfixée de la propriété ID unique du contrôle spécifié. |
A des contrôles | Détermine si le contrôle serveur contient des contrôles enfants. |
A des événements | Indique si l’événement est enregistré par le contrôle ou par d’autres contrôles enfants. |
EstLiteralContent | Détermine si le contrôle serveur contient uniquement du contenu textuel. |
LoadControlState | Restaurez les informations sur l’état du contrôle. |
LoadViewState | Restaurez les informations sur l'état d'affichage. |
MapPathSecure | Récupère le chemin physique auquel un chemin virtuel absolu ou relatif est mappé. |
Cloner par membre | Crée une copie superficielle de l'objet actuel. |
Fusionner le style | Copie tous les éléments non vides du contrôle Web avec le style spécifié, mais n'écrase aucun élément de style existant du contrôle. |
SurBubbleEvent | Détermine si les événements du contrôle serveur passent par la hiérarchie des contrôles serveur de l'interface utilisateur de la page. |
SurDataBinding | Déclenchez un événement de liaison de données. |
À l'initialisation | Déclenche l'événement Init. |
En Charge | Déclenche un événement de chargement. |
SurPréRendu | Déclenche l'événement PreRender. |
SurDéchargement | Déclenchez un événement de désinstallation. |
Fichier ouvert | Récupère le flux utilisé pour lire le fichier. |
Contrôle supprimé | Appelé après la suppression d’un contrôle enfant de la collection de contrôles de l’objet contrôle. |
Rendre | Affiche le contrôle à l'auteur HTML spécifié. |
RenderBeginTag | Affiche la balise d'ouverture HTML du contrôle pour l'auteur spécifié. |
RenduEnfants | Génère le contenu des enfants du contrôle serveur dans l'objet HtmlTextWriter fourni pour écrire le contenu qui est restitué sur le client. |
RenduContenu | Affiche le contenu du contrôle à l'auteur spécifié. |
RenderControl (HtmlTextWriter) | Génère le contenu du contrôle serveur vers l'objet HtmlTextWriter fourni et enregistre les informations de suivi sur le contrôle si le suivi est activé. |
Balise de fin de rendu | Affiche la balise de fermeture HTML du contrôle pour l'auteur spécifié. |
Résoudre l'adaptateur | Obtient l’adaptateur de contrôle responsable du rendu du contrôle spécifié. |
Enregistrer l'état du contrôle | Enregistre les modifications d’état des contrôles du serveur survenues depuis la publication de la page sur le serveur. |
EnregistrerViewState | Enregistre tout état modifié après l'appel de la méthode TrackViewState. |
SetDesignModeState | Définissez les données au moment de la conception pour le contrôle. |
VersChaîne | Renvoie une chaîne représentant l'objet actuel. |
ÉtatTrackView | Permet à un contrôle de suivre les modifications apportées à son état d'affichage afin qu'elles puissent être stockées dans la propriété ViewState de l'objet. |
Jetons un coup d'œil à un contrôle serveur spécifique : le contrôle arborescence. Les contrôles d’arborescence sont des contrôles de navigation. Les autres contrôles de navigation sont : le contrôle de menu et le contrôle SiteMapPath.
Ajoutez un contrôle d’arborescence à la page. Sélectionnez Modifier les nœuds... dans la tâche et modifiez chaque nœud à l'aide de l'éditeur de nœuds d'arborescence comme suit :
Une fois le nœud créé avec succès, l'affichage suivant apparaîtra dans la vue conception :
La tâche AutoFormat... permet de spécifier le format de l'arborescence comme suit :
Ajoutez un contrôle d'étiquette et un contrôle de zone de texte sur la page et nommez-les respectivement lblmessage et txtmessage.
Écrivez quelques lignes de code pour vous assurer que lorsqu'un nœud spécifique est sélectionné, le contrôle d'étiquette affiche le texte du nœud et la zone de texte affiche tous les nœuds enfants en dessous (le cas échéant). Le code du fichier d'arrière-plan devrait ressembler à ceci :
using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;namespace eventdemo { public partial class treeviewdemo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { txtmessage.Text = " "; } protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) { txtmessage.Text = " "; lblmessage.Text = "Selected node changed to: " + TreeView1.SelectedNode.Text; TreeNodeCollection childnodes = TreeView1.SelectedNode.ChildNodes; if(childnodes != null) { txtmessage.Text = " "; foreach (TreeNode t in childnodes) { txtmessage.Text += t.Value; } } } }}
Exécutez la page pour voir l'effet et vous pourrez développer et réduire les nœuds.