none
Comment synchroniser 2 forms avec un dataset par un bindingsource (Refresh d'un Datagridview ) RRS feed

  • Question

  •  

    Bonjour a tous,

     

    Apres m'etre fait la main sur les datagridview sur une form, je desire aller plus loin :

     

    1. sur ma form main un datagridview affiche les donnees de mon dataset (jusqu'ici tout va bien)

     

    2. en cliquant sur add, pop up d'une nouvelle fenetre d'edition que j'ai cree par drag and drop des details de mon datasource sur cette form.

     

    Probleme : a la sauvegarde sur la form add, puis a l fermeture, le datagridview de la form main n'update pas l'affichage des nouvelles donnees malgre que le dataset soit correctement rempli.

     

    Je ne trouve pas la commande, ni la procedure approprie... meme un me.tableadapter.fill ne fait pas l'affaire.

     

    Quand je relance l'application hop les ajout s'affiche...

     

    Merci d'avance pour vos lumieres.

    mercredi 18 juin 2008 09:36

Réponses

  • Bonjour et merci a vous deux pour vos reponses.

     

    J'ai teste le ResetBinding en vain...

     

    J'ai reussi a obtenir le resultat escompter en vidant le dataset (clear) puis en remplissant le TableAdapter (fill).

     

    Je vais me pencher malgre tout sur la solution propose par Mathieu et vous tiens informe.

     

    Merci encore de votre aide.

     

    Cordialement.

    mercredi 18 juin 2008 13:01

Toutes les réponses

  • Bonjour,

     

    pour rafraichir l'affiche des données dans votre datagridview, vous pouvez utiliser la méthode ResetBindings. Voici le lien de la MSDN  : http://msdn.microsoft.com/fr-fr/library/system.windows.forms.control.resetbindings.aspx

     

    En espérant avoir pu vous aider.

    mercredi 18 juin 2008 09:56
  • Bonjour Pierrot,

     

    Pour réaliser ce que vous voulez faire, il faut transmettre votre dataset à votre form "Détail" ainsi que le bindingcontext pour conserver la même position du curseur entre les deux forms (voir currencymanager)

     

    Pour notre exemple nous allons utiliser la base de données northwind.

     

    Code Snippet

    //Fenêtre principal

    Dim fOrders As New Form2(DsOrders1, "Customers", BindingContext)

    fOrders.Show()

     

    //Fenêtre détail

    Public Class Form2

       Public Sub New(ByVal monDataset As Object, ByVal member As String, ByVal ctx As BindingContext)

     

          InitializeComponent()

     

          txtNom.DataBindings.Add("Text", monDataset, member + ".ContactName")

          Me.BindingContext = ctx

     

       End Sub

    End Class

     

     

     

    Cette méthode vous permettra de travailler sur le même datasource que vous soyez sur la form1 ou la form2

     

    Amicalement,

     

     

    mercredi 18 juin 2008 12:17
  • Bonjour et merci a vous deux pour vos reponses.

     

    J'ai teste le ResetBinding en vain...

     

    J'ai reussi a obtenir le resultat escompter en vidant le dataset (clear) puis en remplissant le TableAdapter (fill).

     

    Je vais me pencher malgre tout sur la solution propose par Mathieu et vous tiens informe.

     

    Merci encore de votre aide.

     

    Cordialement.

    mercredi 18 juin 2008 13:01