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

VB.NET Discussion :

Valeur d'une enumeration


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 154
    Points : 62
    Points
    62
    Par défaut Valeur d'une enumeration
    Bonjour je viens de créer une classe vb:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
        Dim m_TypeMarche As TypeDeMarche
        Public Enum TypeDeMarche
            Contrat = 0
            Commande = 1
            Marche = 2
        End Enum
     
        Public Property TypeMarche() As Integer
            Get
                Return m_TypeMarche
            End Get
            Set(ByVal Value As Integer)
                m_TypeMarche = Value
            End Set
        End Property
    Lorsque je charge mon objet je me retrouve donc avec 0,1 ou 2 dans mon type de marche.

    J'aimerais dans mon formview faire ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Container.DataItem.TypeMarche
    Sauf que bien sur il m'affiche 0,1 ou 2!! Moi j'aimerais qu'il m'affiche les textes correspondants.
    Qq'un connait il la syntaxe pour retrouver les valeurs de mon enumération.

    Merci d'avance, Wells

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    .tostring sur une enum affiche le nom plutot que la valeur entière correspondante

    sinon dans system.enum y a des choses interressantes

  3. #3
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Points : 444
    Points
    444
    Par défaut
    Cependant tostring est "deprecated" sur un enum, utilise plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Convert.ToString(MonEnum.MaValeur)
    (enfin l'équivalent en Vb.Net)

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    une idée du pourquoi c'est pas conseillé ?

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Points : 254
    Points
    254
    Par défaut
    Je connaissait pas le .toString sur les enum ...
    Cela dit, si tu veux que l'intellisense te propose les types de ton enum quand tu affecte ta propriété TypeMarche, tu ferais mieux de la declarer non pas en tant qu'integer mais en tant que ... TypeDeMarche

  6. #6
    Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 154
    Points : 62
    Points
    62
    Par défaut
    Je viens d'essayer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Container.DataItem.TypeMarche.ToString
    Ca ne fait rien de plus

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Points : 254
    Points
    254
    Par défaut
    C'est sans doute parce que justement, ta propriété TypeMarche est de Type INTEGER.
    Declare la en TYPEDEMARCHE et ca devrait marcher ...

  8. #8
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    Tu peux faire un truc dans ce genre là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [Enum].GetName(GetType(TypeDeMarche), Container.DataItem.TypeMarche)
    ceci dit, je suis assez d'accord avec Totanne
    Cela dit, si tu veux que l'intellisense te propose les types de ton enum quand tu affecte ta propriété TypeMarche, tu ferais mieux de la declarer non pas en tant qu'integer mais en tant que ... TypeDeMarche

  9. #9
    Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 154
    Points : 62
    Points
    62
    Par défaut
    Effectivement, mais dans ce cas la j'ai le problème inverse, comment récuperer 0 1 ou 2 au lieu du texte.

    Ouais je sais suis chian ^^

  10. #10
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    tout est dans system.enum
    il faut regarder l'intellisense un peu !

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Points : 254
    Points
    254
    Par défaut
    mais dans ce cas la j'ai le problème inverse
    un Cint(Container.DataItem.TypeMarche) devrait très bien marcher ...

  12. #12
    Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 154
    Points : 62
    Points
    62
    Par défaut
    J'ai voulu binder ma liste déroulante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                Dim lsta As New RDI_SI.RDIMarcheMetier.TypeDeMarche
                With CType(FormViewFiche.FindControl("DropDownListType"), DropDownList)
                    .DataSource = System.Enum.GetNames(lsta.GetType)
                    .DataBind()
                    .Items.Insert(0, "")
                End With
    Ca marche très bien. Sauf que la liste envoi le texte de l'enum, moi je voudrais qu'elle renvoi 0 1 ou 2.

    Une idée?

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/06/2013, 08h51
  2. Gérer la valeur d'une enumeration.
    Par Invité dans le forum Hibernate
    Réponses: 1
    Dernier message: 22/11/2007, 21h11
  3. test la valeur d'une date dans une requete
    Par TuxP dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/01/2004, 14h53
  4. Retourner une valeur avec une fonction
    Par stephtbest dans le forum ASP
    Réponses: 4
    Dernier message: 31/10/2003, 16h37
  5. Récupération valeur d'une propriété type TStrings
    Par Stéphane Vaillant dans le forum Langage
    Réponses: 2
    Dernier message: 01/03/2003, 11h47

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