Comment : créer des listes maîtres/détails avec le contrôle DataGrid Windows Forms
Notes
Le contrôle DataGridView remplace le contrôle DataGrid et lui ajoute des fonctionnalités ; toutefois, le contrôle DataGrid est conservé pour la compatibilité descendante et l'utilisation future si tel est votre choix. Pour plus d'informations, consultez Différences entre les contrôles DataGridView et DataGrid Windows Forms.
Si votre DataSet contient une série de tables connexes, vous pouvez utiliser deux contrôles DataGrid pour afficher les données dans un format maître/détail. Le premier contrôle DataGrid est désigné comme grille principale et le second comme grille détaillée. Lorsque vous sélectionnez une entrée dans la liste maître, toutes les entrées enfants connexes s'affichent dans la liste détails. Par exemple, si votre DataSet contient une table Customers et une table connexe Orders, vous spécifiez la table Customers comme grille principale et la table Orders comme grille détaillée. Lorsqu'un client est sélectionné dans la grille principale, toutes les commandes qui lui sont associées dans la table Orders s'affichent dans la grille détaillée.
Pour définir une relation maître/détail par programme
Créez deux contrôles DataGrid et définissez leurs propriétés.
Ajoutez des tables au groupe de données.
Déclarez une variable de type DataRelation pour représenter la relation à créer.
Instanciez la relation en spécifiant son nom et en indiquant la table, la colonne et l'élément devant lier les deux tables.
Ajoutez la relation à la collection Relations de l'objet DataSet.
Utilisez la méthode SetDataBinding de DataGrid pour lier chacune des grilles à DataSet.
L'exemple suivant montre comment définir une relation maître/détail entre les tables Customers et Orders dans un DataSet(ds) préalablement généré.
Dim myDataRelation As DataRelation myDataRelation = New DataRelation _ ("CustOrd", ds.Tables("Customers").Columns("CustomerID"), _ ds.Tables("Orders").Columns("CustomerID")) ' Add the relation to the DataSet. ds.Relations.Add(myDataRelation) GridOrders.SetDataBinding(ds, "Customers") GridDetails.SetDataBinding(ds, "Customers.CustOrd")
DataRelation myDataRelation; myDataRelation = new DataRelation("CustOrd", ds.Tables["Customers"].Columns["CustomerID"], ds.Tables["Orders"].Columns["CustomerID"]); // Add the relation to the DataSet. ds.Relations.Add(myDataRelation); GridOrders.SetDataBinding(ds,"Customers"); GridDetails.SetDataBinding(ds,"Customers.CustOrd");
DataRelation^ myDataRelation; myDataRelation = gcnew DataRelation("CustOrd", ds->Tables["Customers"]->Columns["CustomerID"], ds->Tables["Orders"]->Columns["CustomerID"]); // Add the relation to the DataSet. ds->Relations->Add(myDataRelation); GridOrders->SetDataBinding(ds, "Customers"); GridDetails->SetDataBinding(ds, "Customers.CustOrd");
Voir aussi
Tâches
Comment : lier le contrôle DataGrid Windows Forms à une source de données
Référence
Vue d'ensemble du contrôle DataGrid (Windows Forms)