实现对象:产品(Products)、产品详情(ProductsDetails)、产品类型(Categorys)
数据源:EntityDataSource
第一步:产品的AspxGridView用EntityDataSource绑定所有数据,分别启用Insert,Delete,Update(这些功能的实现就在此省略了)
gvProducts的EntityDataSoure,注意一定要包含属性:Include,这个属性一定要绑定产品详情的实体类,即:Include="ProductsDetails"

<asp:EntityDataSource ID="EntityDataSource1" Include="ProductsDetails" runat="server" ConnectionString="name=ProductsEntities" DefaultContainerName="ProductsEntities" EnableFlattening="False" EntitySetName="Products" EnableDelete="True" EnableInsert="True" EnableUpdate="True">
第二步:实现在产品编辑的时候用下拉框绑定产品类型(Categorys)
在gvProducts里添加一个GridViewDataComboBoxColumn,直接用EntityDataSource绑定数据源
gvProducts里的代码:

<dx:GridViewDataComboBoxColumn Caption="Category" FieldName="Category" VisibleIndex="3"> <PropertiesComboBox EnableSynchronization="False" DataSourceID="EntityDataSource2" TextField="Category" ValueField="CId" ValueType="System.String" /> <EditCellStyle HorizontalAlign="Left"> </EditCellStyle> </dx:GridViewDataComboBoxColumn>
数据源代码

<asp:EntityDataSource ID="EntityDataSource2" runat="server" ConnectionString="name=ProductsEntities" DefaultContainerName="ProductsEntities" EnableFlattening="False" EntitySetName="Categorys" EntityTypeFilter="Categorys"> </asp:EntityDataSource>
第三步:最为关键
在页面的后台代码页面(List.aspx.cs)增加如下代码

protected void gvProductsDetail_DataBinding(object sender, EventArgs e) { ASPxGridView gvDetail = sender as ASPxGridView; if (gvDetail != null) { int i = Convert.ToInt32(gvDetail.GetMasterRowKeyValue()); ProductsDetails detail = db.ProductsDetails.First(pd => pd.PId == i); List<ProductsDetails> list = new List<ProductsDetails>(); list.Add(detail); gvDetail.DataSource = list; gvDetail.KeyFieldName = "PId"; } }