如何:使用 Windows 窗体 DataGrid 控件创建主/从列表
更新:2007 年 11 月
说明: |
---|
DataGridView 控件替换了 DataGrid 控件并添加了功能;但是也可选择保留 DataGrid 控件以备向后兼容和将来使用。有关更多信息,请参见 Windows 窗体 DataGridView 控件和 DataGrid 控件之间的区别。 |
如果 DataSet 包含一系列相关表,则可以使用两个 DataGrid 控件以主/从格式显示数据。一个 DataGrid 被指定为主网格,而另一个被指定为详细信息网格。当在主列表中选择某项时,所有相关的子项都显示在详细信息列表中。例如,如果 DataSet 包含 Customers 表和相关的 Orders 表,则应将 Customers 表指定为主网格,而将 Orders 表指定为详细信息网格。当从主网格中选择某个客户时,Orders 表中与该客户关联的所有订单都将显示在详细信息网格中。
以编程方式设置主/从关系
新建两个 DataGrid 控件并设置它们的属性。
向数据集添加表。
声明一个类型为 DataRelation 的变量来表示您要创建的关系。
通过指定关系的名称和指定表、列以及将关联这两个表的项来实例化关系。
使用 DataGrid 的 SetDataBinding 方法将每个网格绑定到 DataSet。
下面的示例演示如何在以前生成的 DataSet (ds) 中设置 Customers 表与 Orders 表之间的主/从关系。
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");
请参见
任务
如何:将 Windows 窗体 DataGrid 控件绑定到数据源