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

C# Discussion :

DataGridView, question du neuneu en BD


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut DataGridView, question du neuneu en BD
    Salut

    Question simple...

    Ayant toujours été une bille en base de donnée ;(

    Voici la problématique à résoudre...

    Prenons la classe de data:

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    public class MyData
        {
            private int age;
            private string prenom;
            private string name;
     
            public MyData()
            {
            }
     
            public MyData(int a, string n, string p)
            {
                age = a;
                name = n;
                prenom = p;
            }
     
            [DisplayName("L'age du capitaine")]
            public int Age
            {
                get { return age; }
                set { age = value; }
            }
     
            [DisplayName("Nom du capitaine")]
            public string Name
            {
                get { return name; }
                set { name = value; }
            }
     
     
            public string Prenom
            {
                get { return prenom; }
                set { prenom = value; }
            }
        }
    Dans mon designer, je fais:
    BindingSource
    Source = List<MyData> (par code)...

    A l'affichage, tout est bien.

    Maintenant, si je veux que le champs "Age" (int) n'affiche pas un age mais plutot une valeur type "jeune", "ado", "vieux"

    Il me faut une association entre la valeur Age et la liste des dénominations.

    Ma question: Comment je fais celà pour qu'au final, j'ai pas l'age (int) d'affiché dans ma DGV mais la dénomination associée ?

    (pour simplifier, on peut transformer l'age en "index"...)

    Merci d'avance si celà n'est ni trop long ni trop difficile à expliquer

    (perso, je pense que les pros du de la BD vont me sortir la solution en 3 minutes)...

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2009
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 229
    Par défaut
    tu peux utiliser les énumérations, regarde c lien : http://msdn.microsoft.com/fr-fr/library/sbbt4032(VS.80).aspx

  3. #3
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    merci pour ta réponse

    J'avais oublié de préciser que je savais le faire pour des énumérations

    Dans mon cas, je veux avoir une liste de choix qui permet de choisir la valeur sans pour autant faire appel à une énumération...

    J'imagine qu'il faut surement une source de donnée pour la comboBoxColumn mais après, j'ai juste un soucis sur l'association avec le champ qui va bien...

    Si on met dit que c'est IMPOSSIBLE sans Base de données, je prends comme réponse. JE veux juste savoir si Sans BASE DE DONNEES s'est possible... simplement en utilisant des listes ou des dictionnaires !!!

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2009
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 229
    Par défaut
    ben maintenant je comprend mieux ta problématique
    tu peux traiter ça dans lors de bind de Grid. plus précisement dans la méthode en CreateRow
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <asp:GridView ID="GridViewSocietes" runat="server"  OnRowCreated="GridViewCreated">
    ...
    <Columns>
                            <asp:TemplateField>
                                <ItemTemplate>
                                    <asp:Label ID="lblAge" runat="server" ></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
    </Columns>
    puis côté code behind, le code de la méthode GridViewCreated :
    puis en supposant que t'as enregistré ta data source dans un viewstate (List<MyData> MesDonnees) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    protected void GridViewCreated(Object sender, GridViewRowEventArgs e)
            {
    if (e.Row.RowIndex > -1)
                {
                    if(MesDonnees[e.Row.RowIndex].Age < 10)
                       {
                            Label lbl =(Label) e.Row.FindControl("lblAge");
                         lbl.Text = "junior";
                       }
                    else ...
                }
            }

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    c'est gentil de me répondre

    mais je ne suis pas en code behind puisque je suis en Winform

  6. #6
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    Utilise simplement l'event CellFormatting du DataGridView:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private void dataGridView1_CellFormatting(object sender,
       DataGridViewCellFormattingEventArgs e)
    {
      if (dataGridView1.Columns[e.ColumnIndex].Name == "Age" && e.Value != null)
      {
             if ((int)e.Value < 20) e.Value = "Jeune" ;
             else if ((int)e.Value > 80) e.Value = "Vieux" ;
             else e.Value= "Adulte" ;
      }
    }
    

Discussions similaires

  1. Question sur DataGridView
    Par Kenmath dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/02/2008, 12h38
  2. Question sur Event RowsRemoved de la dataGridView
    Par theMonz31 dans le forum C#
    Réponses: 3
    Dernier message: 18/12/2007, 08h16
  3. question sur les DataGridView
    Par gibea00 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 30/05/2007, 20h18
  4. Question sur le DatagridView
    Par psycho_38 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 15/05/2007, 17h12
  5. Questions sur le DataGridView
    Par misterdev007 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/03/2007, 14h02

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