2
如何在ASP.NET中显示等级数据?我有一个如下所示的数据源:如何使用ASP.NET显示等级数据?
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元素,但我无法弄清楚如何递归调用它。
- 我也看了TreeView类,但放弃它,因为它使用表格呈现。
- 我放弃了CSS Friendly Control Adaptors,因为这似乎是网站上所有控件的一个或者开关。
- 我尝试了一个BulledList,但无法弄清楚如何使它呈现div。
我结束了使用四个相同的嵌套ListView元素,因为我知道我的列表永远不会比四个级别更深。但是这个解决方案非常难看,所以我希望能在这里找到更好的解决方案。 =)
另一方面,尽量不要将div加载作为布局容器 - 尝试首先使用与您的内容语义相匹配的HTML元素,并相应地应用CSS,如果需要,使用display:block - 请参阅http: //daniiswara.net/2009/01/31/div-mania-is-not-semantic-xhtml/ - 如果你绝对必须使用divs – 2009-06-08 13:19:38
是的,我知道这个布局有很多div。但是,有必要在所有浏览器中正确使用动画。如果你关闭CSS,这个解决方案很好地降级到嵌套列表。 – 2009-06-09 06:56:25