C# 在gridview中显示父/子数据

C# 在gridview中显示父/子数据,c#,asp.net,.net,vb.net,C#,Asp.net,.net,Vb.net,我正在尝试创建一个文档,其中显示项目列表,每个项目下面都有详细信息。我觉得我要做的应该相对简单,答案就藏在我的鼻子底下,但我找不到我要找的 举个例子,假设我只是列出了一些人,给孩子们列出了他们最喜欢的食物 这就是最终显示数据的方式: DOE, JOHN AGE:31 Apple Pie Cookies SMITH, JANE AGE:95 Oats Bananas Prunes 我

我正在尝试创建一个文档,其中显示项目列表,每个项目下面都有详细信息。我觉得我要做的应该相对简单,答案就藏在我的鼻子底下,但我找不到我要找的

举个例子,假设我只是列出了一些人,给孩子们列出了他们最喜欢的食物

这就是最终显示数据的方式:

DOE,      JOHN       AGE:31
      Apple
      Pie
      Cookies

SMITH,    JANE       AGE:95
      Oats
      Bananas
      Prunes
我将从数据库返回一个表,其结构如下:

USERID  LASTNAME  FIRSTNAME  AGE  FAVORITEFOOD
100     DOE       JOHN       31   Apple
100     DOE       JOHN       31   Pie
100     DOE       JOHN       31   Cookies
101     SMITH     JANE       95   Oats
101     SMITH     JANE       95   Bananas
101     SMITH     JANE       95   Prunes
我正试图用gridview控件来实现这一点。我不确定那是我应该用的。但我遇到的问题是,让gridview只列出具有唯一用户ID的项目。然后使用该唯一的用户ID在下面单独列出每个项目

是否有任何一种“自动”的方法可以使用标准的.net控件来实现这一点,而无需从代码隐藏处手动将其拼接在一起


谢谢

好吧,如果您得到一个唯一的查询,假设userid、lastname、firstname和age是重复的(例如,从表中选择distinct userid、lastname、firstname、age),并将另一个查询(例如,Select userid、FAVORITEFOOD from table)获取到另一个数据表中,这两个数据表都在同一个数据集中,那么您可以设置一个查询。然后可用于根据选定的父信息显示子信息。我没有按照您要求的方式显示它的经验,但它在两个网格中都有效,一个是ItemSource为父网格,另一个是GetchildRows方法(基于父网格中选定的行)。不确定这是否有用…

这看起来像是建模问题,而不是控制问题。FAVORITEFOOD应该是一个以USERID作为外键的子表。我同意@DanDaviesBrackett。该表包含大量冗余数据,这可能会导致诸如更新异常之类的问题。是的,我觉得这可能是个问题。让我按照你的方式来做的是,我使用的是SqlDataSource,它一次只允许一个记录集。因此,我需要创建一个存储过程来返回第一部分(用户信息),以及另一个存储过程来返回每个用户的详细信息(最喜欢的食物)。如果我要处理成千上万的用户,那就是大量的数据库查询。我认为一次完成这一切可能会更高效、更明智。