2009-08-02 4 views

Antwort

2

Ich kenne kein Beispiel, aber das sollte einfach genug sein, um zu tun. Sie haben nicht angegeben, ob dies für WinForms oder ASP.Net ist, also tun Sie beides.

In WinForms würden Sie das Formular für die untergeordneten Datensätze erstellen und eine öffentliche Funktion hinzufügen, die den Primärschlüssel des Master-Datensatzes akzeptiert und verwendet, um alle untergeordneten Elemente abzurufen.

Public void ShowChildRecord(int RecordId) 
{ 
// databinding logic here using the recordID to retrieve the child's data. 

} 

So in der Form, dass die übergeordnete Datensatz hat, vorausgesetzt, Sie eine DataGrivView verwenden, in den SelectedIndexChanged Event-Handler, dann würden Sie die folgende haben.

ChildForm f = new ChildForm(); 
f.ShowDialog(this); 
f.ShowChildRecord(); 

Ein ähnliches Problem könnte durch das Kind Seite nehmen Sie die RecordID als Abfrage-Zeichenfolge-Parameter und dabei die Datenbindung an das Kind Datensatz in dem Ereignis Page Load in ASP.Net gelöst werden. Dann auf der Master-Datenseite würden Sie einen Repeater mit diesem in der ItemTemplate:

<a href='<%# DataBinder.Eval(Container.DataItem, "RecordId")' Target="_ChildRecords">View child record</a> 
+0

Ein winzigen Makel mit dieser ansonsten hervorragenden Antwort: wenn das Kind nur verwendet wird, wird ein Detail zu zeigen und dann geschlossen wird, machen die recordId ein Ctor-Argument. – tpdi

+0

Danke, es ist die Antwort, die ich erwartet habe. – programmernovice