首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ASP.Net Gridview ->如何在GrdiView的一行中显示数据集合?

ASP.Net Gridview ->如何在GrdiView的一行中显示数据集合?
EN

Stack Overflow用户
提问于 2010-10-24 17:17:29
回答 1查看 2.9K关注 0票数 0
代码语言:javascript
运行
复制
     I have a scenario where I will be showing a Customer data in a GridView. I have a Dictionary collection like this IDictionary<Customer, IList<CustomerOrder>>. 

第一个问题:我可以将这个字典绑定到ASP.Net GridView上吗?

现在,下一个问题,我想要显示以下类型的UI,即在客户的一行中显示多个CustomerOrders。

FName LastName OrderNumber MarkOrderCompleted(RadioButton) ABC DEF 123单选按钮是否345单选按钮是否678单选按钮是否GHI JKL 213单选按钮是否546单选按钮是否768单选按钮是否

FName和LastName将从字典中的Customer对象填充,OrderNumber和MarkOrderCompleted将从CustomerOrders填充。下面是一个提交按钮,根据订单将radion buton状态值保存到数据库中。如果能立即得到帮助,我们将非常感激。先谢谢你...

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-24 22:34:13

是否必须在同一字典中同时包含Customer和CustomerOrder?我会使用具有两个不同集合的嵌套网格。嵌套网格使用第一个网格的"DataKeyNames“属性作为参数。示例:

网格:

代码语言:javascript
运行
复制
   <asp:GridView ID="CustomerGrid" runat="server" EnableModelValidation="True" 
        onrowdatabound="CustomerGrid_RowDataBound" DataKeyNames="CustomerId">
        <Columns>
            <asp:TemplateField HeaderText="Orders">
                <ItemTemplate>
                    <asp:GridView ID="OrderGrid" runat="server">
                    </asp:GridView>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

代码隐藏:

代码语言:javascript
运行
复制
    List<Customer> CustomerList = new List<Customer>();
    List<Orders> Orders = new List<Orders>();

    protected void Page_Load(object sender, EventArgs e)
    {
        // Add some customers
        CustomerList.Add(new Customer() { CustomerId = 1, CompanyName = "TestCompany", FirstName = "John", LastName = "West" });
        CustomerList.Add(new Customer() { CustomerId = 2, CompanyName = "AnotherCompany", FirstName = "Alan", LastName = "East" });

        // Add some orders
        Orders.Add(new Orders() { CustomerId = 1, OrderId = 1, OrderDate = DateTime.Now, Sum = 300 });
        Orders.Add(new Orders() { CustomerId = 1, OrderId = 2, OrderDate = DateTime.Now, Sum = 600 });
        Orders.Add(new Orders() { CustomerId = 2, OrderId = 3, OrderDate = DateTime.Now, Sum = 2000 });
        Orders.Add(new Orders() { CustomerId = 2, OrderId = 4, OrderDate = DateTime.Now, Sum = 100 });

        // Bind customerlist to grid
        CustomerGrid.DataSource = CustomerList;
        CustomerGrid.DataBind();
    }

    protected void CustomerGrid_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            // Get customer id for row
            int customerId = (int)CustomerGrid.DataKeys[e.Row.RowIndex].Value;

            // Get the nested grid control
            GridView OrderGrid = e.Row.FindControl("OrderGrid") as GridView;

            // Get orders for customer
            OrderGrid.DataSource = Orders.Where(o => o.CustomerId == customerId);
            OrderGrid.DataBind();
        }
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4007676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档