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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[VB.NET] Couleur de fond label dans datagrid


Sujet :

ASP.NET

  1. #1
    Membre régulier Avatar de Azephel
    Inscrit en
    Février 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2007
    Messages : 141
    Points : 99
    Points
    99
    Par défaut [VB.NET] Couleur de fond label dans datagrid
    Bonjour à tous !

    J'utilise VS2005 pour l'ASP.NET (VB.NET)
    J'ai un datagrid avec à l'intérieur une colonne modèle qui contient un Label. La requête remplissant le datagrid ramène un code couleur sous la forme #RRVVBB.

    Je stocke ce code couleur dans une colone visible=false de cette datagrid. J'aimerais que le label ai cette couleur de fond, donc j'ai fait le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For Each dgi As DataGridItem In DGMat.Items
            CType(dgi.FindControl("LabelCouleur"), Label).Attributes.Add("style", "background-color:" & dgi.Cells(6).Text)
    Next
    Mais malheureusement aucune couleur de fond pour le label.
    J'avais essayé ceci auparavant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For Each dgi As DataGridItem In DGMat.Items
            CType(dgi.FindControl("LabelCouleur"), Label).BackColor=dgi.Cells(6).Text)
    Next
    Seulement il me dit que le cast spécifié n'est pas valide, car il faut un System.Drawing.Color pour la propriété BackColor, et ici c'est du texte.

    Quelqu'un aurait une idée à ce sujet ?

    A noter qu'avant ça marchait relativement bien. En tout cas la couleur s'affichait...

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Label.BackColor est de type System.Drawing.Color et non de type Text.

  3. #3
    Membre régulier Avatar de Azephel
    Inscrit en
    Février 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2007
    Messages : 141
    Points : 99
    Points
    99
    Par défaut
    Oui je sais, c'est pour ça que j'ai dit qu'il me disait que le cast spécifié n'est pas valide et que j'ai tenté autre chose.

    A moins qu'il y ai possibilité d'instancier un System.Drawing.Color avec un code couleur en hexa...

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Oui, faut juste trouver comment.
    Doit y avoir tout ce qu'il faut dans la msdn

  5. #5
    Membre régulier Avatar de Azephel
    Inscrit en
    Février 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2007
    Messages : 141
    Points : 99
    Points
    99
    Par défaut
    Sinon je ne pense pas que ça vienne vraiment de l'instruction CType(dgi.FindControl("LabelCouleur"), Label).Attributes.Add("style", "background-color:" & dgi.Cells(6).Text)
    Car avant ça fonctionnait très bien, tout ce que j'ai fait c'est rajouter une condition dans la requête de remplissage de la datagrid. En débugage ça passe bien dans la boucle, mais une fois la page chargée, c'est comme si ça ne passait pas dedans...

    Halala, les datagrids, des fois...

    EDIT : Je confirme, grâce à toi j'ai regardé dans la MSDN et j'ai instancié un System.Drawing.Color avec mon code couleur. Je l'ai assigné à la propriété BackColor du Label et toujours rien...

  6. #6
    Membre régulier Avatar de Azephel
    Inscrit en
    Février 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2007
    Messages : 141
    Points : 99
    Points
    99
    Par défaut Trouvé !
    Laissez tomber, j'a trouvé :
    Il suffisait de lier la propriété BackColor du label à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Drawing.Color.FromArgb((Convert.ToInt32(Eval("Couleur").ToString.Substring(1, 2), 16)), (Convert.ToInt32(Eval("Couleur").ToString.Substring(3, 2), 16)), (Convert.ToInt32(Eval("Couleur").ToString.Substring(5,2), 16)))
    C'est un peu long mais ça fonctionne !

    Merci quand même pour le temps consacré !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Couleur de fond conditionnelle dans un état
    Par poplite dans le forum IHM
    Réponses: 13
    Dernier message: 27/02/2007, 01h12
  2. [VB.NET] couleur qui s efface dans richtextbox
    Par happey dans le forum Windows Forms
    Réponses: 2
    Dernier message: 26/04/2006, 15h43
  3. [VB.NET] Clic sur ImageButton utilisé dans datagrid
    Par viva-emptiness dans le forum ASP.NET
    Réponses: 6
    Dernier message: 15/06/2005, 00h14
  4. [VB.NET] Problème liste Parent-Enfant dans DataGrid
    Par vonbier dans le forum ASP.NET
    Réponses: 7
    Dernier message: 27/01/2005, 08h53
  5. Réponses: 8
    Dernier message: 14/05/2004, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo