Utilisation avancée de enum.

Contenu du snippet

Bonjour,

J'utilise de temps à autre ENUM.

Il m'arrive de l'utiliser par exemple pour définir le mode actif de ma page en stockant la valeur chaîne dans une zone cachée.
Le problème est que, lors du PostBack, j'avais du mal à retranscrire la valeur texte en variable de mon type « enum ».

Je viens enfin de trouver une solution (il était temps, certains penserons !) et je vous la livre ci-dessous au travers un exemple un peu plus poussé.

Ce code n'est là que pour illustrer des fonctions autour de ENUM, mais ce n'est pas un programme utile. Il s'adresse aux personnes qui connaissent déjà la grande utilité de ENUM en programmation.

Points montrés :
- Obtenir une string à partir d'une valeur de type énumération (Jours.Mardi.ToString)
- Convertir une énumération en tableau de string ([Enum].GetNames(GetType(Jours)))
- Retrouver la valeur du type de l'énumération à partir d'une string ([Enum].Parse(GetType(Jours), "Mardi")).

Source / Exemple :


========================== ASPX =======================
	<body>
		<form id="Form1" method="post" runat="server">
			<asp:DropDownList id="ddlJours" runat="server"></asp:DropDownList>
		</form>
	</body>

=========================== VB ========================
   Enum Jours
      Lundi
      Mardi
      Jeudi
   End Enum

   Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

      If Not IsPostBack Then

         With ddlJours
            .DataSource = [Enum].GetNames(GetType(Jours))
            .DataBind()
            .SelectedValue = Jours.Mardi.ToString
         End With

      Else

         Dim LeJourChoisi As Jours
         LeJourChoisi = [Enum].Parse(GetType(Jours), ddlJours.SelectedValue)

         Select Case LeJourChoisi
            Case Jours.Lundi
               '
            Case Jours.Mardi
               '
            Case Jours.Jeudi
               '
         End Select
      End If

   End Sub

Conclusion :


J'espère que ce code simple vous sera claire et profitable.

J'ai remarqué après rédaction que « tno » utilisait une partie de cette astuce dans une de ses contributions VB.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.