How can I bind two datagrids in a Master-Detail relationship?
http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp#q780q

解决方案 »

  1.   

    http://chs.gotdotnet.com/QuickStart/aspplus/default.aspx?url=%2fquickstart%2fwinforms%2fdoc%2fWinFormsData.aspx设定一下数据表之间的关系就可以了
    两个datagrid分别绑定不同的数据表
      

  2.   

    在数据库应用程序中,查看带有一组相关记录的记录通常很有用。例如,可能希望查看带有自己的当前订单的客户。实现此功能的一个常用方法是创建主/详细信息窗体。 此示例显示客户的 Datagrid 以及每个客户的订单的 DataGrid。第一个 DataGrid 显示客户列表。第二个 DataGrid 显示订单列表。当所选客户更改时,第二个 DataGrid 更新以显示该客户的订单。为了链接两个 DataGrid 对象,需要将每个 DataGrid 的 DataSource 设置为同一 DataSet。还需要设置 DataMember 属性以向 Windows 窗体 BindingContext 指示它们是相关的。通过将第二个 DataGrid 的 DataMember 设置为 Customers 和 Orders 表之间关系的名称 Customers.CustomersOrders 来实现此目的。
    dataGrid1.DataSource = customersAndOrdersDataSet1;
    dataGrid1.DataMember = "Customers";dataGrid2.DataSource = customersAndOrdersDataSet1;
    dataGrid2.DataMember = "Customers.CustomersOrders";
      

  3.   

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/vbtchTopQuestionsAboutASPNETDataGridServerControl.asp
      

  4.   

    每次选择一项数据后显示另一个已经绑定相应数据库的datagrid,然后每次都刷新页面,应该可以吧。
      

  5.   

    设置绑定的DataMember就行了
    this.dataGrid2.DataSource = this.ds1;
    this.dataGrid2.DataMember = "table1";this.dataGrid2.DataSource = this.ds1;
    this.dataGrid2.DataMember = "table1.relation12";relation12是两个表之间的关系名。
    楼主要定义他们的关系使用DataRelation对象。
      

  6.   

    1.DATASET中先FILL兩個DATATABLE,然後對主表和副表達之間的關係鍵寫一個Relation,而副表GRID的綁定的就是這個關係,如主表DATATABLE名爲A,副表的table爲B,關係爲C,則主grid綁定的是A,副grid綁定的是A.C.就如 wangsaokui(无间道II(前传)) 所說的那樣.不過,個人在做的時候,覺得如果對主grid分頁後,副表的綁定爲比較難搞.所以我自己做的時候用了另一個方法.
    2.在主grid的CurrentCellChanged事件中寫綁定.即同上先對DATASET中FILL兩個table,然後先綁定A到主grid上,然後:
                               DataView dv;
                               dv=objDs.Tables["A"].DefaultView;
    dv.Sort="KEY";
    dv.RowFilter="KEY="+grdA[grdA.CurrentCell.RowNumber,0].ToString();
    grdList.DataSource=dv;
    這樣就可以達到你的目的了.試試看吧