FAQ ASP.NET/VB.NET
Sommaire
>
Les webforms >
Affichage
Comment lier un Calendar à une Css ?
Comment formater une date pour l'affichage ?
Comment changer le font d'un webcontrol en code-behind ?
Comment lier une css à un webuser control ?
Comment forcer la saisie en majuscule dans une textbox ?
Comment centrer un texte à l'intérieur d'un label ?
Comment colorer différemment chaque Item d'une DropDownList?
Comment empêcher de sélectionner les dates passées dans un Calendar ?
Comment faire un lien vers une page de manière relative et qui fonctionne quelque soit le répertoire dans lequel ce lien se trouve ?
Comment lier un Calendar à une Css ?
Comment formater une date pour l'affichage ?
Comment changer le font d'un webcontrol en code-behind ?
Comment lier une css à un webuser control ?
Comment forcer la saisie en majuscule dans une textbox ?
Comment centrer un texte à l'intérieur d'un label ?
Comment colorer différemment chaque Item d'une DropDownList?
Comment empêcher de sélectionner les dates passées dans un Calendar ?
Comment faire un lien vers une page de manière relative et qui fonctionne quelque soit le répertoire dans lequel ce lien se trouve ?
| ||||
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 :
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 :
Dans votre Css :
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 :
Les styles affectés par ce comportement étrange du calendar et nécéssitants ce type de classe Css sont :
|
| ||
auteur : David Pedehourcq | ||
Rien de tel qu'un exemple concret pour voir comment formater une date pour l'affichage :
Voici les différents résultats que l'on obtient suivant la valeur de param :
Et pour les formats personalisés:
Donnera : Jeudi, le 18 05 1978
| ||
lien : Comment n'afficher que l'heure d'un champ type DateTime dans un datagrid ? |
| ||
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 :
|
| ||
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 :
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 :
|
| ||
auteur : David Pedehourcq | ||
Ou en code behind :
|
| |||
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):
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
et enfin d'ajouter les différents Items à la liste.
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.
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 :
Affichez votre page dans votre navigateur puis visualisez le code source, vous obtenez :
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 :
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 :
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...
|