datagrid嵌套gridview代码解析

本文介绍了一个ASP.NET中DataGrid控件嵌套的例子,包括如何在DataGrid的每一项中绑定一个GridView控件,实现数据的层级展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设计页面   defalt.aspx

  <asp:DataGrid ID="DataGrid1" runat="server" width="250%" DataKeyField="Agent_Code"  align="center" AutoGenerateColumns="False" AllowPaging="True"  PageSize="20" GridLines="Horizontal" OnItemDataBound="DataGrid1_ItemDataBound">
        <Columns>
            <asp:BoundColumn DataField="Agent_Name" HeaderText="代理名称">
                <ItemStyle Font-Bold="False" Font-Italic="False" Font-Overline="False" Font-Strikeout="False"
                    Font-Underline="False" HorizontalAlign="Center" />
            </asp:BoundColumn>
            <asp:BoundColumn DataField="Agent_Provice" HeaderText="区域"></asp:BoundColumn>
            <asp:BoundColumn DataField="Agent_Connecter" HeaderText="联系人"></asp:BoundColumn>
         
            <asp:TemplateColumn HeaderText="联系方式">
                <ItemTemplate>
                    <asp:GridView ID="GridView1" runat="server" Width="100%" AutoGenerateColumns="False">      
                    <Columns>
                    <asp:BoundField DataField="Agent_Phone"  HeaderText="联系电话" />
                    <asp:BoundField DataField="Agent_Fex"  HeaderText="传真" />
                    <asp:BoundField DataField="Agent_Tel"  HeaderText="手机" />
                    <asp:BoundField DataField="Agent_E_mail"  HeaderText="邮箱" />
                    <asp:BoundField DataField="Agent_Address"  HeaderText="地址" />
                     <asp:BoundField DataField="Agent_YB"  HeaderText="邮编" />
                    </Columns>
                    </asp:GridView>
                </ItemTemplate>
                <HeaderStyle Font-Bold="False" Font-Italic="False" Font-Overline="False" Font-Strikeout="False"
                    Font-Underline="False" HorizontalAlign="Center" />
            </asp:TemplateColumn>

</Columns>

 </asp:DataGrid>

代码页面: defalt.aspx.cs

       string sql = "select * from t_Agent where 1=1";

          DataTable ass = System.mySQLConnection.SqlConnections.GetDataTable(sql, "das");
        if (ass != null && ass.Rows.Count > 0)
        {
         this.DataGrid1.DataSource = System.mySQLConnection.SqlConnections.GetDataTable(sql, "k_payway");

        this.DataGrid1.DataBind();
        }

到这里先把最外层datagrid 绑定好

在datagrid 绑定每一行的时候绑定gridview

protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
    {


        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.EditItem)
        {

 

             string sqla = "select * from t_Agent where Agent_Code='"+ DataGrid1.DataKeys[e.Item.ItemIndex].ToString()+"'";
          
            DataTable ass = System.mySQLConnection.SqlConnections.GetDataTable(sqla, "das");

            if (ass != null && ass.Rows.Count > 0)

            {

                        if ((GridView)e.Item.Cells[4].FindControl("GridView1")!= null)
                    {
                        ((GridView)e.Item.Cells[4].FindControl("GridView1")).DataSource = System.mySQLConnection.SqlConnections.GetDataTable(sqla, "k_payway");
                        ((GridView)e.Item.Cells[4].FindControl("GridView1")).DataBind();
                    }

             }

         }

     }

这样就可以运行了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值