begin process at 2010 03 12 19:18:11
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > UTILISATION AVANCÉE DE ENUM.

UTILISATION AVANCÉE DE ENUM.


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Source .NET ( DotNet ) Classé sous :enum, postback, énumération Niveau :Initié Date de création :10/11/2004 Date de mise à jour :11/11/2004 12:04:57 Vu :11 745

Auteur : Domilo

Ecrire un message privé
Site perso
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

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

  • ========================== 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
========================== 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.


 Historique

11 novembre 2004 11:50:01 :
Explications complémentaires.
11 novembre 2004 12:05:02 :
(Changé le mot "Mode" en "Jour" pour être plus clair)

 Sources de la même categorie

Source avec Zip SÉRIALISER / DÉSÉRIALISER DES VARIABLES EN ASP par lejdu
CREATION D'UN AUTOCOMPLETE JQUERY AVEC UN CODE SOURCE ASP ET... par dedebis84
Source .NET (Dotnet) RÉCUPÉRER DES VALEURS D'UNE LIGNE DANS UN DATAGRID APRÈS AVO... par PascalCmoa
Source avec Zip Source avec une capture Source .NET (Dotnet) UN SEMBLANT DE MASTERPAGE POUR DES FICHIERS XSL par bizzard4
Source avec Zip CRÉATION DE RAPPORTS EXCEL DYNAMIQUE EN ASP par foliv57

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) GENERER UN POSTBACK ET RECUPERER L'EVENEMENT À PARTIR D'UN C... par jesusonline
Source .NET (Dotnet) RECUPERER L'ID DU CONTROLE GENERANT LE POSTBACK par jesusonline

Commentaires et avis

Commentaire de jesusonline le 11/11/2004 00:53:51 administrateur CS

j'arrive pas à saisir l'utilité de ton code, pourquoi faire tout ca alors qu'il y a beaucoup plus simple ?

Cyril

Commentaire de Domilo le 11/11/2004 11:58:00

Merci de ta remarque. Je viens d'inscrire quelques informations complémentaires dans la description.

Effectivement il y mille et une façons plus simples d’exploiter un dropdownlist...
Mais sais-tu comment plus simplement retrouver la valeur de type énumération à partir d’une string ?

Commentaire de jesusonline le 11/11/2004 12:12:50 administrateur CS

ok maintenant grace à tes nouveaux commentaire je vois un peu plus l'utilité de ta source :) Au debut je pensais que ta source etait la pour montrer le drop :D

Cyril

Commentaire de ViveLeRoi le 07/03/2006 13:19:07

Bonjour à tous,

Bien sympa ces explications, mais est-ce que quelqu'un sait comment faire pour récupérer dans une property une énum parmi plusieurs, je m'explique :

J'aimerai pouvoir faire quelque chose dans cet esprit :

public class Objet1
public Enum LesNoms As byte
  toto
  titi
end enum
...
end class

public class Objet2
public Enum LesNoms As byte
  Nana
  Nene
  Nono
  Nini
end enum
...
end class

et encore d'autres dans le même genre avec des noms et quantités différents dans leur enum
puis mon objet principal

public class ObjPrincipal
inherits System.Windows.forms.Control
private EnCours as object
Public UneEnum As Enum                  ' n'est pas valable !

public property() ChoixNom As UneEnum
  get
   return UneEnum
  end get
  set(ByVal n As UneEnum)
   UneEnum = n
  end set
end property
...
public sub New(byval x as byte)
  mybase.new()
  select case x
   case 0
    Encours = New objet1()
   case 1
    Encours = New objet2()
   ...
  end select
  UneEnum = Encours.LesNoms
end sub
end class

Résumé : comment une propriété peut elle gérer des enum's différentes ?

Merci d'avance pour ceux qui pourraient résoudre ce problème.

Avec toute mon amitié

ViveLeRoi

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

SaveViewState lors des PostBack [ par mesinscriptions ] J'ai créé un controle composite afin de faire un arbre. J'ai donc trois classes : la classe arbre, la classe noeud et la classe collection de noeuds.M Problème avec le postback [ par Anovil ] Bonjour &#224; tous&nbsp;Je d&#233;bute tout juste sous .net et je rencontre un probl&#232;me avec ce qui s'appelle je crois le "postback"Par exemple [.NET] Ne pas réafficher les données lors du postBack [ par nitrique ] Bonjour &#224; tous, Je voudrais faire de la saisie en masse...J'ai un formulaire et lorsque je le valide, je reviens sur la m&#234;me page mais je vo erreur lors d'un changement de page [ par EvilDef ] lorsque je clique sur un bouton, mon projet ouvre&nbsp;la meme page avec un nouveau parametre&nbsp;(la c simple)mais quand je saisie un champs, je cli Repositionnement de la scrollbar apres postback [ par cabbry ] Bonjour, j'aimerai repositionner ma scrollbar au bon endroit avec un Postback, sans utiliser smartnavigation=true. J'ai trouv&#233; le code &#224; PostBack [ par edokt ] Salut &#224; tous J'ai un problem avec postback Pour n'est pas faire des connection serveur, j'ai ecrit un petit code en javascript pour ajouter des probleme de 3 dropdownlists et postback [ par emna_bz ] Bonjour je suis en train de developpez une page web avec c#.J'ai utilis&#233;&nbsp;3 dropdownlists region , departement et&nbsp; nom .Elle sont en rel PostBack [ par BasicInstinct ] Bonjour tout le monde.Je developpe en asp.net &amp; C#.sur le click d'un imagebutton, je mets a jour des donnees dans une base SQLServer. (sans pb)cep [ASPNET] PostBack, ID du contrôle qui l'a déclenché [ par piloulr ] Bonjour &#224; tous,Voil&#224; je me gratte la t&#234;te car &#231;a ne vient pas...Je programme en AspNet 2, VBNetJ'ai une page aspx qui cr&#233;ait Asp.net 2 => Invalid postback or callback argument. [ par Focalizer ] Bonjour,J'ai un datagrid dans un Usercontrol (ascx) qui est charg&#233; dans une page aspx. Ce datagrid a des imagesboutons ou autres qui permettent l


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales