Meilleur auteur de réponses
Comment synchroniser 2 forms avec un dataset par un bindingsource (Refresh d'un Datagridview )

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.
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.
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.
-
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,
-
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.