
| auteur : David Pedehourcq | Lorsque l'on passe par le designer de Visual Studio.NET ( et je supose que c'est sensiblement pareil pour les autres IDE) lorsqu'on paramètre l'aspect de son Calendar, on paramètre en fait plusieurs styles. Par exemple, voici un Calendar ou j'ai personnalisé les styles :
< asp : calendar id = " Calendar1 " runat = " server "
Width = " 47px " Height = " 40px " >
< TodayDayStyle Font - Names = " Arial " Font - Bold = " True " ForeColor = " Red " > < / TodayDayStyle >
< SelectorStyle Font - Names = " Arial " > < / SelectorStyle >
< DayStyle Font - Names = " Arial " ForeColor = " # 006600 " > < / DayStyle >
< NextPrevStyle Font - Names = " Arial " ForeColor = " White " BorderColor = " # 000600 "
BackColor = " # 006600 " > < / NextPrevStyle >
< DayHeaderStyle Font - Names = " Arial " ForeColor = " White " BorderColor = " # 006600 "
BackColor = " # 006600 " > < / DayHeaderStyle >
< SelectedDayStyle Font - Names = " Arial " > < / SelectedDayStyle >
< TitleStyle Font - Names = " Arial " ForeColor = " White " BorderColor = " # 006600 "
BackColor = " # 006600 " > < / TitleStyle >
< WeekendDayStyle Font - Names = " Arial " > < / WeekendDayStyle >
< OtherMonthDayStyle Font - Names = " Arial " ForeColor = " # 006600 " BorderColor = " White "
BackColor = " White " > < / OtherMonthDayStyle >
< / asp : calendar >
|
Le soucis est que si votre application utilise plusieur Calendar il faut soit faire du copier coller soit recréer tous les styles. On peut pourtant lier le Calendar à une Css. Plus exactement on peu lier chaque style à une classe Css. Par exemple, juste pour le DayHeaderStyle
:
On déclare le calendar :
< asp : calendar id = " Calendar1 " runat = " server " Width = " 47px " Height = " 40px " >
< DayHeaderStyle CssClass = " MyDayHeaderStyle " > < / DayHeaderStyle >
< / asp : calendar >
|
Dans votre Css :
.MyDayHeaderStyle
{
background-color : # 006600 ; // BackColor
border-color : # 006600 ; // BorderColor
color : White ; // ForeColor
font-family : Arial;// Font
}
|
On fait de même avec tous les autres styles du Calendar.
ATTENTION : L'objet calendar a un comportement étrange lorsqu'on applique une Css sur des liens (les jours, mois suivant, mois précédent). Afin de s'assurer que les liens du calendar respectent la Css, il faut spécifier une règle sur la Css, par exemple :
TD.OtherMonthDayStyle A
{
font-family : Arial ! important;
color : # 006600 ! important;
}
|
Les styles affectés par ce comportement étrange du calendar et nécéssitants ce type de classe Css sont :
- OtherMonthDayStyle
- TodayStyle
- NextPrevStyle
|
| auteur : leduke | Nous allons ici utiliser un label, mais le code est valable pour les autres webcontrols.
Le piège dans cette question est que la propriété "font" du label est en lecture seule !!!
Il faut en fait passer par un style, un exemple :
Dim monstyle As New Style
monstyle. BorderColor = Color. Blue
monstyle. BackColor = Color. Black
monstyle. ForeColor = Color. Blue
monstyle. Font . Name = " Verdana "
monstyle. Font . Size = 20
Lable1. ApplyStyle (monstyle)
|
|
| auteur : David Pedehourcq | Par défaut, le webuser control a accès à la css de la page dans laquelle il est inclus. L'intérêt est que le webuser control s'adapte parfaitement aux différentes pages dans lesquelles il est placé.
Cependant, si vous souhaitez quand même lier une css "spécifique" à un webuser control, il vous suffit d'ajouter dans la css :
< LINK rel = stylesheet type = " text / css " href = " styles . css " >
|
attention : si vous liez une css au webuser control faites attention d'utiliser des classes de css différentes que celles de la css des pages dans lesquelles vous allez inclure le webuser control.
|
lien : Partie css de la FAQ html
|
| auteur : jane2002 | Dans le Page_Load de la page aspx on rajoute :
TextBox1. Attributes . Add (" OnKeyUp " ," this.value=this.value.toUpperCase() " )
|
|
| auteur : David Pedehourcq |
< asp : label id = " Labelcentre " Width = " 100 % " >
< p align = " center " > Label centre< / p > < / asp : label >
|
Ou en code behind :
labelcentre. Text = " <p align= " " center " " >Label centre</p> "
|
|
| auteur : Didier Danse |
Soit une liste déroulante déclarée en html de telle manière (ou une DropDownList qui est
l'équivalent en asp.NET):
< SELECT id = " Couleur " runat = " server " name = " Couleur " > < / SELECT >
|
Cette liste a pour but d'afficher la liste des couleurs possibles avec la couleur en fond de
chaque item.
Dans le code de traitement, il suffit alors d'inclure
Imports System. Reflection
|
et enfin d'ajouter les différents Items à la liste.
For Each col As FieldInfo In GetType (KnownColor). GetFields
If col. FieldType = GetType (KnownColor) Then
Couleur. Items . Add (New ListItem (col. Name , col. Name ))
End If
Next
Dim i As Integer = 0
While i < Couleur. Items . Count
Couleur. Items (i). Attributes . Add (" style " , " background-color: " + Couleur. Items (i). Text )
System. Math . Min (System. Threading . Interlocked . Increment (i),i- 1)
End While
|
On peut imaginer d'autres utilisations telles mettre en rouge la liste des factures non payées
et en vert celles qui sont payées dans une application de gestion de factures.
|
| auteur : Didier Danse | Dans l'évènement DayRender du calendar, vous pouvez savoir quelle est la date qui va être affichée. Dès lors, il ne reste plus qu'à tester si cette date est passée et lui indiquer qu'il n'est pas possible de le sélectionner.
If Args. Day . Date < DateTime. Today Then
Args. Day . IsSelectable = False
Args. Cell . BackColor = Color. LightGray
Args. Cell . ForeColor = Color. Gray
End If
|
Bien entendu, vous pouvez effectuer tous les tests que vous souhaitez (par exemple la sélection de date qui sont dans l'année en cours).
|
| auteurs : Didier Danse, Michaël LEBRETON |
En ASP.NET, l'utilisation du ~/ est une fonctionalité serveur, faisant donc appel à un traitement sur le serveur.
La problématique
En effet, seul le serveur est en mesure de connaitre la racine de l'application Web. Cette affirmation peut sembler étonnante mais pour comprendre imaginons un domaine comme www.masociete.com. Ce domaine peut héberger autant d'application web qu'on le souhaite (qui peuvent d'ailleurs ne pas être toutes en ASP.NET). Nous pouvons donc avoir :
http://www.masociete.com : Portail de présentation de l'entreprise
http://www.masociete.com/Gestion : Portail de l'application de gestion
http://www.masociete.com/B2B : Portail de travail collaboratif
...
Vue du navigateur, qu'est-ce donc que la racine d'une application ? Comment doit-il interpréter une URL de la forme /Image/Monimage.gif ou ../MonDossier/Monfichier.htm ?
Au yeux du navigateur, ce sont des URLs relatives ! Elles sont relatives à l'URL saisie dans la barre d'adresse du navigateur.
L'opérateur racine
ASP.NET introduit l'opérateur racine (~) pour la raison expliquée ci-dessus. L'utilisation de cet opérateur dans une URL fait de cette URL une URL virtuelle. Puisqu'elle est virtuelle, il faudra lui appliquer un traitement pour la transfomer en une URL réelle. Ce traitement s'effectue sur le serveur. Pour preuve, si l'on reprend ce code :
< li > < a href = " ~/Boutique/Commandes.aspx " > Mes commandes< / a > < / li >
|
Affichez votre page dans votre navigateur puis visualisez le code source, vous obtenez :
< li > < a href = " ~/Boutique/Commandes.aspx " > Mes commandes< / a > < / li >
|
Et oui, le (~) est arrivé sur le navigateur pour qui il ne signifie absolument rien ! L'URL virtuelle n'a subie aucune transformation. Il faut a tout pris que le (~) soit traité par le serveur.
Solutions
Comme on le suggère ci dessus, il est possible d'utiliser WebControl HyperLink en lien et place de la balise HTML <a></a>. Le WebControl HyperLink étant un contrôle serveur Web, l'URL virtuelle sera correctement transformée.
Mais il est aussi possible de transformer la balise HTML <a></a> (qui est traité par ASP.NET comme du text litéral) en ce qu'on appel un HtmlControl, qui lui sera traité coté serveur. Il suffit de lui ajouter l'attribut runat="server" comme dans le code suivant :
< li > < a href = " ~/Boutique/Commandes.aspx " runat = " server " > Mes commandes< / a > < / li >
|
Testez la différence dans votre navigateur, vous verrez dans la source HTML que l'URL virtuelle a belle et bien étée transformée. Le serveur a fait son travail.
Limitations
Qu'il s'agisse de WebControl ou d'HtmlControl, l'utilisation de l'opérateur (~) n'est pas la panacée. Par exemple le code suivant ne fonctionnera pas :
< div style = " background-image:url(~/Image/Monimage.jpg); " runat = " serve " > < / div >
|
En effet, seules les propriétés marquées comme étant des urls bénéficient du mécanisme lié à l'utilisation de l'opérateur (~). Et là, pour resoudre le problème, il faut passer par une abstraction supplémentaire, mais c'est une autre histoire...
|
Consultez les autres F.A.Q's
Les sources présentés sur cette pages sont libre de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2007
Developpez LLC. Tout droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérets.
Cette page est déposée à la SACD.
|