IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ ASP.NET/C#

FAQ ASP.NET/C#Consultez toutes les FAQ

Nombre d'auteurs : 39, nombre de questions : 371, dernière mise à jour : 15 juin 2021 

 
OuvrirSommaireWebFormsContrôlesContrôles serveur (WebControl)Contrôles richesCalendar

Lorsque l'on passe par le designer de Visual Studio.NET (et je suppose 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 :

 
Sélectionnez
<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 plusieurs 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 :

 
Sélectionnez
<asp:calendar id="Calendar1" runat="server" Width="47px" Height="40px">
	<DayHeaderStyle CssClass="MyDayHeaderStyle "></DayHeaderStyle>
</asp:calendar>


Dans votre Css :

 
Sélectionnez
.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 :

 
Sélectionnez
TD.OtherMonthDayStyle A
{
	font-family : Arial ! important; 
	color:#006600 ! important; 
}


Les styles affectés par ce comportement étrange du calendar et nécessitants ce type de classe Css sont :

  • OtherMonthDayStyle
  • TodayStyle
  • NextPrevStyle
Créé le 18 février 2004  par David Pedehourcq

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.

 
Sélectionnez
if (Args.Day.Date < DateTime.Today)
{
	Args.Day.IsSelectable = false ;
	Args.Cell.BackColor = Color.LightGray ;
	Args.Cell.ForeColor = Color.Gray ;
}

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).

Créé le 14 novembre 2007  par Didier Danse

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2007 Dotnet Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.