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 :

Pb rafraichissement master / detail


Sujet :

VB.NET

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 258
    Points : 126
    Points
    126
    Par défaut Pb rafraichissement master / detail
    Bonjour,
    Je viens encore une fois solliciter votre aide pour un pb de rafraichissement sous Winform sur un Form Master / Detail
    J’ai un Form détail Maitre chargé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ‘ Chargement Master
    Dim QueryMaster = From c In ctx.Masters Select c
    QueryMaster.Load()
    MasterBindingSource.DataSource = ctx.Masters.Local.ToBindingList
    Sur lequel, j’ai un DGV “fils” que j’avais bindé via l’IDE, puis par code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ‘ ChargementFils
    FilsBindingSource.DataSource = MasterBindingSource
    FilsBindingSource.DataMember = "Master_Fils"
    DGVFils.DataSource = FilsBindingSource
    L’ensemble fonctionne très bien sauf en mise à jour :
    Je peux via ce Form appeler un autre Form permettant de modifier le « Fils » et me renvoyant un boolean si une modification a été faite
    Malheureusement, les modifications ne sont pas répercutées sur mon Form Master tant que je ne ferme / ré-ouvre celui-ci
    A partir du Boolean indiquant la modification, j’ai essayé sans succès (un peu dans le désordre je l’avoue, car j’ai fait pas mal d’essais !) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DGVFils.EndEdit()
    DGVFils.Clear()
    FilsBindingSource.DataSource = Nothing ‘ suivi de ‘  chargementFils
    MasterBindingSource.DataSource = Nothing suivi de ‘ chargementMaster ‘ et ‘chargementFils
    FilsDGVFils.Refresh()
    FilsBindingSource.ResetCurrentItem() ‘ idem pour le Master suivi du fils
    Et cela ne marche toujours pas !
    J’ai eu beau googeliser des heures pas de piste !
    Par avance, merci
    Bertrand

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 258
    Points : 126
    Points
    126
    Par défaut
    Bonjour,
    Je n’ai pas encore résolu mon pb, et je pense que je l’ai mal explicité (ça ne devait pas être bien clair dans ma tête !)

    Dans ma BDD j’ai 2 tables (Doc et Particularite) et une table de jonction (Doc-Particularite : ne comprenant que les ID de Doc, Particularite + 1 ID auto incrémenté) pour une relation many-many

    Sur mon Form Doc (Form detail) je veux afficher les Particularités qui y sont liées
    Je charge mon Form Doc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ‘ chargement doc
    Dim QueryDoc = From c In ctx. docs Select c
    QueryDoc.Load()
    DocBindingSource.DataSource = ctx. docs.Local.ToBindingList
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ‘ Chargement particularite
    Dim QueryParticularite = From c In ctx. particularites Select c
    QueryParticularite.Load()
    ParticulariteBindingSource.DataSource = ctx particularites.Local.ToBindingList
    J’ai un DGV pour lister les Particularités liées à la doc en cours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ‘ Chargement Doc-Particularite
    Doc-ParticulariteBindingSource.DataSource = DocBindingSource
    Doc-ParticulariteBindingSource.DataMember = "Doc-Particularites"
    DGVs.DataSource = Doc-ParticulariteBindingSource
    Dans ce DGV, j’ai un ComBobox pour afficher les particularités en littéral au lieu de l’ID
    J’avais bindé ce Combobox via l’IDE, mais je l’ai repris en code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Me.ParticulariteColumn.DataPropertyName = "ParticulariteID"
    Me.ParticulariteColumn.DataSource = ParticulariteBindingSource 
    Me.ParticulariteColumn.DisplayMember = "Libelle"
    Me.ParticulariteColumn.ValueMember = "ParticulariteID"
    Le tout marche bien (Ajout / Suppression) sauf si l’utilisateur modifie via un autre Form le libellé de Particularite (ou en ajoute / supprime un) : le Combobox n’est pas mis à jour et peut générer une erreur le DGV ne pouvant plus retrouver le libellé en question.

    J’ai un boolean à ma disposition signifiant une modification mais je n’arrive pas à trouver la bonne séquence de réinitialisation du DGV / ComboBox
    Par avance, merci
    Bertrand

Discussions similaires

  1. UI Master-Detail et multiselect: la règle ?
    Par GoustiFruit dans le forum Bases de données
    Réponses: 2
    Dernier message: 27/03/2008, 14h24
  2. Réponses: 6
    Dernier message: 26/10/2007, 11h04
  3. [Tomahawk] [dataTable] Master detail
    Par infonini dans le forum JSF
    Réponses: 3
    Dernier message: 06/09/2007, 11h42
  4. master detail -dbLookupComboBox
    Par atb dans le forum Bases de données
    Réponses: 1
    Dernier message: 10/04/2007, 18h23
  5. [Forms] Debugger/Pb canevas-relation Master/detail
    Par lafouine dans le forum Forms
    Réponses: 16
    Dernier message: 12/08/2005, 18h51

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