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 :

VB 2010 :Refresh d'un datagridview [Débutant]


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 11
    Points : 7
    Points
    7
    Par défaut VB 2010 :Refresh d'un datagridview
    Bonjour à tous,

    Voici mon problème :

    Dans une appli MDI, j'ai un formulaire MDI enfant qui contient un datagridview nommé dtaListMembres peuplé à partir d'un datasource:

    Nom : dtalistmembres.PNG
Affichages : 304
Taille : 25,4 Ko

    par le click sur le bouton "Editer", j'ouvre un autre formulaire pour l'édition de la ligne courante (frmEditMembers) :

    Nom : EditMembers.PNG
Affichages : 381
Taille : 29,6 Ko

    Mon problème est que j'aimerais, lorsque je valide les modifications, que dtaListMembre soit rafraîchi automatiquement. Malheureursement, au lieu d'effacer le contenu du contrôle et de le recharger, les données sont simplement rajoutées à la suite.

    J'ai essayé de vider le controle avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dtaListMembres.DataSource=Nothing
    mais absolument rien ne marche.

    Cela fait maintenant deux jours que je tourne en rond.

    Merci de votre aide.

  2. #2
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonjour,

    Je pense qu'il n'est pas possible de supprimer des valeurs de composants liés à un DataSet, il faut supprimer dans le DataSet et rafraîchir les liaisons avec les composants.
    Dans le code suivant, un DataGridView nommé DGVStock est lié à un DataSet MonStock.
    Pour supprimer des éléments sélectionnés dans le DataGridView, je romps sa liaison avec le DataSet, je sélectionne tout (pour l'exemple), l'efface la sélection et je rafraîchis la liaison.
    Mais attention, comme aucune donnée n'a été supprimée dans le DataSet, à l'issue de ces codes, toutes mes données sont à nouveau affichées ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            DGVStock.DataSource = Nothing ' je romps sa liaison avec le DataSet
     
            DGVStock.SelectAll() ' ou bien effectuer les sélections des éléments qui doivent pêtre supprimés
            DGVStock.ClearSelection()
     
            DGVStock.DataSource = MonStock.Tables("TProduit") ' rafraîchir la liaison
    J'espère que ça t'aidera ...

  3. #3
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Suite ...

    Comme trop souvent, j'ai oublié l'esquisse d'une solution : Si tu effaces l'enregistrement du DataSet, il disparaîtra aussitôt du DataGridView

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    '...
    MonStock.Tables("TProduit").Rows(IndiceDeLaLigneASupprimer).Delete()
    '...
    Suite ... encore ... (la journée va être productive )

    Pour le cas où ton DataGridView ne serait pas lié à un DataSet, le code suivant permet de supprimer une ligne sélectionnée ici par le click d'une cellule, mais la sélection peut être faite par le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Private Sub Datagridview1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
            Dim Ligne As Integer
            Ligne = e.RowIndex
            DataGridView1.Rows.RemoveAt(Ligne)
        End Sub
    Si j'ai encore une suite ...

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Effectivement çà marche !

    Encore merci pour cette aide rapide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. datagridview update ou refresh ?
    Par tro2blabla dans le forum VB.NET
    Réponses: 7
    Dernier message: 06/10/2014, 10h44
  2. List, BindingSource, DataGridView refresh
    Par b_lob dans le forum Windows Forms
    Réponses: 0
    Dernier message: 24/11/2009, 12h35
  3. Réponses: 11
    Dernier message: 26/04/2009, 19h02
  4. Réponses: 8
    Dernier message: 20/01/2009, 13h11
  5. [C#] Datagridview, dataset, etc Problème de refresh
    Par nitrous007 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 15/12/2006, 14h01

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