如何在 ASP.NET 中显示分层数据?我有一个如下所示的数据源:
class Tree
{
IEnumerable<Node> Nodes { get; set; }
}
class Node
{
string Description { get; set; }
decimal Amount { get; set; }
IEnumerable<Node> SubNodes { get; set; }
}
我想将 is 渲染为 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 构建这个元素,但我不知道如何递归调用它。
- 我还查看了 TreeView类,但删除了它,因为它是使用表呈现的。
- 我放弃了CSS Friendly Control Adaptors因为这似乎是网站上所有控件的一个或一个开关。
- 我尝试过 BulledList ,但无法弄清楚如何让它渲染 div。
我最终使用了四个相同的嵌套 ListView 元素,因为我知道我的列表永远不会超过四层。但这个解决方案太丑陋了,我希望在这里找到一个更好的解决方案。 =)
最佳答案
您可以使用转发器控件,然后循环浏览列表,并为每个具有子级的节点嵌套另一个转发器。这将需要一些努力,因为您需要以编程方式使用它,但是将预构建的 Repeater 控件作为服务器控件将使它变得更加容易。
我喜欢使用中继器,因为当您花一些时间使用它们时,它们非常灵活。而且他们不会放入无关的 HTML。 :)
关于asp.net - 如何使用 ASP.NET 显示分层数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/964799/