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 :

Gridview qui se remplit grace à un bouton


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 105
    Points : 40
    Points
    40
    Par défaut Gridview qui se remplit grace à un bouton
    Bonjour,

    J'aimerais créer un simple gridview, avec une seule colonne "Nom".
    J'ai une combobox avec tous mes noms de ma db et un bouton "ajouter".
    Je voudrais que quand je clic sur "ajouter", mon gridview devienne visible à coté de mon bouton avec les noms.
    Donc au premier clic : il y aura une ligne avec un nom dans ma colonne "Noms"
    au 2e, deux lignes, etc.

    J'ai essayé plusieurs choses, rien ne fonctionne

    Merci

  2. #2
    Membre régulier Avatar de Klivor
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 143
    Points : 100
    Points
    100
    Par défaut
    Essaye de jouer avec la propriété DataSource de ton datagridview en la reliant avec les items dans ton combobox.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dgv.DataSource=moncombobox.Items

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 105
    Points : 40
    Points
    40
    Par défaut
    En fait, j'ai "trouvé" ... presque trouvé dirons nous.

    J'ai ma combobox qui s'appelle "MT"
    Ma grid qui s'appelle "MTGrid"
    Mon bouton qui s'appelle "MTbutton".

    Voici mon code dans la méthode du clic sur bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    protected void MTbutton_Click(object sender, EventArgs e)
            {
                DataTable ds = new DataTable();
                DataColumn colName = new DataColumn("Name", Type.GetType("System.String"));
                ds.Columns.Add(colName);
                DataRow NewRow = ds.NewRow();
                NewRow["Name"] = MT.SelectedItem.Text;
                ds.Rows.Add(NewRow);
                gridMT.DataSource = ds;
                gridMT.Visible = true;
                gridMT.DataBind();
            }
    Le seul problème c'est qu'à chaque fois que je clique sur mon bouton, la valeur précédente s'écrase et je n'ai toujours qu'une valeur dans ma grid.
    De plus, j'aimerais rajouter une colonne "delete" avec un bouton dedans et quand on clique sur ce bouton, ça supprime la ligne correspondante.
    Comment résoudre ces deux problèmes?

    Merci

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

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

    Informations forums :
    Inscription : Décembre 2009
    Messages : 229
    Points : 305
    Points
    305
    Par défaut
    Ben c'est toute à fait logique, à chaque fois, t'es en train d'écraser les valeurs existantes.
    Pour résoudre le problème, il faut enregistrer les anciens valeurs avant d'ajouter une nouvelle valeur.
    Tu ajoute une propriété (viewstate) qui va contenir les valeurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    private List<string> valuers
    {
    get{
          if(ViewState["valeurs"] == null)
              return new List<string>();
          else
              return (List<string>) ViewState["valeurs"];
         }
    set { ViewState["valeurs"] = value; }
    }
    et après :
    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
     
    protected void MTbutton_Click(object sender, EventArgs e)
            {
                DataTable ds = new DataTable();
                DataColumn colName = new DataColumn("Name", Type.GetType("System.String"));
                ds.Columns.Add(colName);
                DataRow NewRow;
                foreach(string s in valuers)
                {
                    NewRow = ds.NewRow(); 
                    NewRow["Name"] = s;
                }
                NewRow = ds.NewRow();
                NewRow["Name"] = MT.SelectedItem.Text;
                ds.Rows.Add(NewRow);
    //ajout du valeur sélectionné à la liste des valeurs 
                valuers.Add(MT.SelectedItem.Text); 
     
                gridMT.DataSource = ds;
                gridMT.Visible = true;
                gridMT.DataBind();
            }
    Accepter les critiques, c'est le premier pas pour être un bon développeur ...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 105
    Points : 40
    Points
    40
    Par défaut
    Merci beaucoup !
    En fait je ne connais pas du tout le viewstate .... si tu pouvais m'expliquer en quelque mots, et me dire où je dois placer le code que tu as mis, ça m'aiderait.
    J'ai tenté de placer ton code dans ma classe et de mettre enableViewState à true dans mon grid, mais ça ne fait rien.

    Pour le problème du bouton, sais tu comment faire?

Discussions similaires

  1. Disque dur qui se remplit à l'exécution d'Oracle
    Par bruce-willis dans le forum Installation
    Réponses: 0
    Dernier message: 01/03/2008, 16h14
  2. Réponses: 2
    Dernier message: 15/02/2008, 14h48
  3. Réponses: 0
    Dernier message: 31/10/2007, 14h05
  4. fenètre qui s'ouvre avec un bouton formulaire
    Par nickg dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/02/2006, 22h54
  5. [MySQL] Selectionné un enregistrement grace à un bouton radio
    Par 12_darte_12 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 31/10/2005, 15h29

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