一个AspxGridView包含另一个AspxGridView实现主从数据绑定

实现对象:产品(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";
            }
        }

 

转载于:https://www.cnblogs.com/huangjing/archive/2013/04/19/3030780.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值