顯示HTML中的樹可以通過嵌套無序列表來完成:
<ul class="tree">
<li><div>Item 1</div></li>
<li><div>Item 2</div></li>
<li><div>Item 3</div>
<ul>
<li><div>Item 3.1</div></li>
<li><div>Item 3.2</div>
<ul>
<li><div>Item 3.2.1</div></li>
<li><div>Item 3.2.2</div></li>
</ul>
</li>
</ul>
</li>
</ul>
一些CSS,使其看起來更加樹狀:
ul
{
list-style:none;
/*list-style-image: url('your_image_url_here')*/
}
和jQuery展開/摺疊兒童安全
$(function(){
$(".tree li div").click(function()
{
var children = $(this).parent("li").children("ul");
if(children.length > 0)
{
if(children.is(":visible"))
{
children.hide();
}
else
{
children.show();
}
}
});
});
全樣本:在點擊節點http://jsfiddle.net/eQxTs/5/
對於AssetEntity的每個列表,您可以使用部分視圖或DislayTemplates在剃刀中呈現列表。通過迭代每個AssetEntity中具有相同PartialView的子集合,您將獲得遞歸使其成爲一棵樹。
剃刀:
@model IEnumerable<AssetEntity>
<ul>
@foreach (var item in Model)
{
<li>@item.Name
@Html.DisplayFor(m => item.Children)
</li>
}
</ul>
我已經添加了一些CSS和jQuery來完成採樣。 – Hannes
有沒有辦法做到這一點,不使用剃鬚刀?恐怕我還沒有做好準備。我一直在使用獨立的.aspx頁面來顯示。儘管如此,我會給它一個旋轉。 – gibbypoo
只要我們仍在討論mvc而不是webforms,PartialViews或DisplayTemplates的概念仍然相同。無論如何,我會鼓勵你給剃鬚刀viewengine一試。這就像「只是把@sign和做一些C#...」。我從這篇參考文章開始:http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx/ – Hannes