voila un exemple de code que je met sur le positionchanged
ds.T_DOSSIER_SITE.Rows.Clear();
//On rempli le datagrid Site
if(CM_Dossier.Position>=0)
{
Da_Site.SelectCommand.Parameters["@DOSNUM"].Value = (System.Guid) ds.T_DOSSIER.Rows[CM_Dossier.Position]["DOSNUM"];
Da_Site.Fill(ds.T_DOSSIER_SITE);
//On affecte le Ds au datagrid
dg_Liste_Site.DataSource = ds.T_DOSSIER_SITE;
CM_Site = (CurrencyManager) BindingContext[ds.T_DOSSIER_SITE];
//Largeur des colonnes et nom de Colonnes
dg_Liste_Site.TableStyles["T_DOSSIER_SITE"].GridColumnStyles["SITCOD"].HeaderText = "Code";
dg_Liste_Site.TableStyles["T_DOSSIER_SITE"].GridColumnStyles["SITCOD"].Width = 100;
dg_Liste_Site.TableStyles["T_DOSSIER_SITE"].GridColumnStyles["SITCOD"].NullText = "";
dg_Liste_Site.TableStyles["T_DOSSIER_SITE"].GridColumnStyles["SITLIB"].HeaderText = "Site";
dg_Liste_Site.TableStyles["T_DOSSIER_SITE"].GridColumnStyles["SITLIB"].Width = 320;
dg_Liste_Site.TableStyles["T_DOSSIER_SITE"].GridColumnStyles["SITLIB"].NullText = "";
//Refresh du Datagrid
dg_Liste_Site.Refresh();
try
{
dg_Liste_Site.Select(0);
}
catch{}
et jamais eu de sousis telle que le tiens...
CM_Dossier est mon currencymanager sur la table parent (ton D1)
dg_Liste_Site = D2
peut etre cela peut-il t'aider
Arthenius
http://blogs.developpeur.org/Arthenius/
"Ce qui ne me tue pas, me rend plus fort..."