我的数据来自数据库。我有一个具有一些基本属性的项目数据表。
Item
{
ID,
Name,
Description,
...
} 然后我有一个多对多的关系表:
Parent
{
ParentID,
ChildID
} 我遍历每一项并显示它的子项;以及它的子项,等等。我认为这最好是通过嵌套的重复器来完成的,但我可能错了。
如何使用asp:repeaters获得多个层级?我只用过一个嵌套的中继器,我不知道怎么做3+。
发布于 2010-08-26 15:34:34
就我个人而言,我可能是通过创建一个带有Item属性和某种Parents或Children属性的自定义控件来做到这一点的。该控件将在Item上显示详细信息,然后使用中继器显示Parents / Children中的每个元素,其中对于每个项目,中继器递归地使用相同的控件来呈现该项目。
发布于 2010-08-26 15:44:45
“我会照Kragen说的做。”但是,如果您真的认为创建两个组件太多,那么您应该在数据绑定上使用一个中继器和两个foreach循环。使用两个中继器,一个在另一个中继器内部是非常复杂的,更不用说3个中继器了:)。
发布于 2010-08-26 20:14:00
亲子关系,哪种是多对多?这是没有意义的,至少称他们为父母和孩子是没有意义的。如果它真的是多对多,那么它就是一个网络;如果一个子节点只有一个父节点,那么它就是一个层次结构。
对于前者,我不确定以这种方式可视化它们是否有任何好处。你如何想象一个有多个父母的孩子?
对于后者,为什么不使用带有定制项模板的TreeView呢?它会自动处理所有的层次结构。中继器的问题是,如果你不是动态地做它们(在代码中创建它们),那么嵌套的级别是固定的,你不能像你想要的那样去。动态地做它们是可行的,但会带来开销。
我不太确定你到底想要达到什么目的。也许提供一些你需要看到的关于最终结果的更多细节会有所帮助。
https://stackoverflow.com/questions/3572882
复制相似问题