到目前为止,我使用asp:Treeview
处理了我的Web应用程序的所有动态菜单..
在 asp.net mvc 网络应用程序中对其进行任何合适的替换......
答案 0 :(得分:2)
我会使用基于jQuery的插件。与this one一样。
答案 1 :(得分:0)
在我的Mvc Controls Toolkit中,我有一个基于jQuery TreView的服务器控件。但是,我允许节点编辑,插入ov新节点,并通过用鼠标拖动将子树移动到另一个位置。发布视图时,所有更改都会自动反映在服务器端的数据结构上。此外,所有节点都是模板化的,并且相同的树可以具有不同类型的节点。看看这里: http://mvccontrolstoolkit.codeplex.com/wikipage?title=TreeView
答案 2 :(得分:0)
正如 Arnis 所说,使用Jquery插件,它非常简单! 我通过将代码和html封装在部分视图中作为用户控件来实现。你可以通过递归逻辑来做到这一点:
@helper ShowTree(TreeItem item, IEnumerable<TreeItem> tree)
{
var childs = folders.Where(g => g.ParentId == item.Id);
if (childs.Count() == 0)
{
<text>
<li class="last"><span class="folder">@item.Title</span></li>
</text>
}
else
{
<text>
<li class="expandable">
<div class="hitarea expandable-hitarea">
</div>
<span class="folder">@item.Title</span>
<ul style="display: none;">
@{foreach (var child in childs)
{
@ShowTree(child, folders)
}
}
</ul>
</li>
</text>
}
}