Application de styles à des contrôles serveur
Les contrôles serveur Web assurent un niveau supplémentaire de prise en charge des styles en ajoutant plusieurs propriétés fortement typées pour les paramètres de style fréquemment utilisés, tels que la couleur d'arrière-plan et de premier plan, le nom et la taille de la police, la largeur, la hauteur, etc. Ces propriétés de style constituent un sous-ensemble des comportements de style disponibles en HTML et sont représentées en tant que propriétés « plates » exposées directement dans la classe de base System.Web.UI.WebControls.WebControl. Ces propriétés ont l'avantage de fournir une vérification du type au moment de la compilation et d'assurer l'exécution complète des instructions dans les outils de développement, tels que Microsoft Visual Studio .NET.
L'exemple suivant illustre un contrôle WebCalendar auquel plusieurs styles sont appliqués (un calendrier dépourvu de style est fourni afin de mettre en évidence les différences). Remarquez que lorsque vous définissez une propriété de type classe, telle que Font, vous devez utiliser la syntaxe de sous-propriété NomPropriété-NomSousPropriété.
L'espace de noms System.Web.UI.WebControls comprend une classe de base Style qui encapsule des attributs de style communs (les classes de styles supplémentaires, telles que TableStyle et TableItemStyle, héritent de cette classe de base commune). De nombreux contrôles serveur Web exposent des propriétés de ce type pour spécifier le style des différents éléments de restitution du contrôle. Par exemple, WebCalendar expose de nombreuses propriétés de ce type : DayStyle, WeekendDayStyle, TodayDayStyle, SelectedDayStyle, OtherMonthDayStyle et NextPrevStyle. Vous pouvez définir des propriétés particulières de ces styles à l'aide de la syntaxe de sous-propriété NomPropriété-NomSousPropriété, comme illustré dans l'exemple suivant.
Une syntaxe légèrement différente permet à chaque propriété Style d'être déclarée en tant qu'élément enfant imbriqué dans des balises de contrôles serveur Web.
<ASP:Calendar ... runat="server">
<TitleStyle BorderColor="darkolivegreen" BorderWidth="3"
BackColor="olivedrab" Height="50px" />
</ASP:Calendar>
L'exemple suivant illustre une syntaxe alternative, mais équivalente à la précédente d'un point de vue fonctionnel.
Comme pour les contrôles serveur HTML, vous pouvez appliquer des styles à des contrôles serveur Web à l'aide de la définition de classe CSS. La classe de base WebControl expose une propriété String appelée CssClass pour la définition de la classe de styles :
Si un attribut est défini sur un contrôle serveur qui ne correspond pas à une propriété fortement typée du contrôle, l'attribut et la valeur sont remplis dans la collection Attributes du contrôle. Par défaut, les contrôles serveur restituent ces attributs inchangés dans le code HTML retourné au navigateur client qui en fait la demande. Cela signifie que les attributs de style et de classe peuvent être définis directement sur les contrôles serveur Web, plutôt que d'utiliser les propriétés fortement typées. Même si cette méthode exige une certaine compréhension de la restitution concrète du contrôle, elle permet d'appliquer des styles avec une grande souplesse. Elle est particulièrement utile pour les contrôles d'entrée de formulaire standard, comme illustré dans l'exemple suivant.
Les styles des contrôles serveur Web peuvent également être définis par programme, à l'aide de la méthode ApplyStyle de la classe de base WebControl, comme illustré dans le code suivant.