2010-08-26 65 views
0

我的数据来自数据库。我有一个具有一些基本属性的项目数据表。ASP.net:超过2个嵌套中继器

Item 
{ 
    ID, 
    Name, 
    Description, 
    ... 
} 

然后,我有一个多对多的关系表:

Parent 
{ 
    ParentID, 
    ChildID 
} 

我通过遍历每个项目并显示其子女;及其子女的孩子等。我认为这最好用嵌套式中继器完成,但我可能是错的。

如何使用asp:repeater获取多个heirarchical级别?我只使用过一个嵌入式中继器,我不知道如何做3+。

回答

0

就我个人而言,我可能会通过创建一个具有Item属性和某种ParentsChildren属性的自定义控件来实现此目的。该控件将在Item上显示详细信息,然后使用中继器显示Parents/Children中的每个元素,其中对于每个项目,中继器递归地使用相同的控件呈现该项目。

0

我会做@Kragen说的。但是如果你真的认为创建两个组件太多,你应该在数据绑定中使用一个中继器和两个foreach循环。 使用两个中继器在另一个内部过于复杂,更不用说3个中继器:)。

0

亲子关系,多对多?这是没有道理的,至少称他们为父母,孩子没有意义。如果它真的是多对多的,那就是一个网络,如果一个孩子只有一个父母,那么它就是一个等级。

对于前者,我不确定以这种方式对它们进行可视化是件好事。你如何将一个孩子与多个父母形象化?

对于后者,为什么不使用具有自定义项目模板的TreeView?它自动处理所有的层次结构。中继器的问题在于,如果你没有动态地执行它们(在代码中创建它们),那么嵌套的级别是固定的,你不能像想要的那样去做。动态地做它们会起作用,但会带来开销。

我不是很确定你到底想要完成什么。也许提供一些关于您需要查看的最终结果的详细信息会很有帮助。