我的数据来自数据库。我有一个项目数据表,其中包含一些基本属性。
Item
{
ID,
Name,
Description,
...
}
然后我有一对多关系表:
Parent
{
ParentID,
ChildID
}
我正在遍历每个项目并显示其子项;和我孩子的孩子等我认为这最好用嵌套的中继器完成,但我可能是错的。
如何使用asp:repeaters获得多个层次结构级别?我只使用过一个嵌套的转发器,我不知道怎么做3 +。
答案 0 :(得分:0)
我个人可能通过创建一个具有Item
属性和某种Parents
或Children
属性的自定义控件来实现此目的。控件将在Item
上显示详细信息,然后使用转发器显示Parents
/ Children
中的每个元素,其中对于每个项目,转发器递归使用相同的控件来呈现项目。
答案 1 :(得分:0)
我会做@Kragen所说的。但是如果你真的认为创建两个组件太多,你应该在数据绑定上使用一个转发器和两个foreach循环。 使用两个中继器一个在另一个内部是过于复杂的,更不用说3个中继器:)。
答案 2 :(得分:0)
亲子关系,多对多?这没有意义,至少称他们为父母和孩子是没有意义的。如果它真的是多对多的,那么它就是一个网络,如果一个孩子只有一个父母,那么它就是一个层次结构。
对于前者,我不确定以这种方式对它们进行可视化是否有益。你如何想象一个有多个父母的孩子?
使用后者,为什么不使用带有自定义项模板的TreeView?它自动处理所有层次结构的东西。中继器的问题在于,如果你没有动态地进行它们(在代码中创建它们),那么嵌套的级别是固定的,你不能按照你想要的那样多。动态地执行它们会起作用,但会带来开销。
我不太确定你到底想要完成什么。也许提供一些关于最终结果的更多细节,你需要看到它们会有所帮助。