0

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

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

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

Parent 
{ 
   ParentID, 
   ChildID 
} 

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

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

4

3 回答 3

0

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

对于前者,我不确定以这种方式可视化它们有什么好处。你如何想象一个有不止一个父母的孩子?

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

我不太确定您到底要完成什么。也许提供有关您需要查看的最终结果的更多详细信息会有所帮助。

于 2010-08-26T12:13:59.800 回答
0

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

于 2010-08-26T07:34:34.387 回答
0

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

于 2010-08-26T07:44:45.033 回答