如何在ASP.NET中显示Hierarical数据?我有一个如下所示的数据源:
class Tree
{
IEnumerable<Node> Nodes { get; set; }
}
class Node
{
string Description { get; set; }
decimal Amount { get; set; }
IEnumerable<Node> SubNodes { get; set; }
}
我想渲染为div的列表,如下所示。我需要div标签来扩展和折叠分支时使动画变得平滑。
<ul class="foldable">
<li>
<div class="line">
<div class="description">...</div>
<div class="amount">...</div>
</div>
<div class="line">
<div class="description">...</div>
<div class="amount">...</div>
</div>
<ul>
<li>
<div class="line">
<div class="description">...</div>
<div class="amount">...</div>
</div>
</li>
</ul>
</li>
</ul>
我最终使用了四个相同的嵌套ListView元素,因为我知道我的列表永远不会超过四个级别。但是这个解决方案太难看了,我希望能在这里找到更好的解决方案。 =)
答案 0 :(得分:3)
您可以使用转发器控件,然后循环浏览列表,并为每个有子节点的节点嵌套另一个转发器。这需要一些努力,因为你需要以编程方式使用它,但是使用预先构建的Repeater控件作为服务器控件会使它更容易。
我喜欢使用中继器,因为当你花些时间和它们一起工作时,它们非常灵活。那,他们并没有放入无关的HTML。 :)