ASP.net:超过2个嵌套中继器

时间:2010-08-26 07:26:28

标签: c# asp.net repeater nested-repeater

我的数据来自数据库。我有一个项目数据表,其中包含一些基本属性。

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

然后我有一对多关系表:

Parent 
{ 
   ParentID, 
   ChildID 
} 

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

如何使用asp:repeaters获得多个层次结构级别?我只使用过一个嵌套的转发器,我不知道怎么做3 +。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

对于前者,我不确定以这种方式对它们进行可视化是否有益。你如何想象一个有多个父母的孩子?

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

我不太确定你到底想要完成什么。也许提供一些关于最终结果的更多细节,你需要看到它们会有所帮助。