2010-01-30 19 views

回答

2

我會使用基於jQuery的插件。像this one

0

在我的Mvc控件工具包中,我有一個基於jQuery TreView的服務器控件。但是,我允許節點編輯,插入新的節點,並通過用鼠標拖動子樹將子樹移動到另一個位置。發佈視圖時,所有更改都會自動反映在服務器端的數據結構上。而且,所有節點都是模板化的,同一棵樹可以有不同類型的節點。這裏給看看: http://mvccontrolstoolkit.codeplex.com/wikipage?title=TreeView

0

由於阿爾尼斯說,使用jQuery撐着,它是那麼容易! 我通過將代碼和html作爲UserControl封裝在Partial View中來完成此操作。你可以通過遞歸邏輯來做到這一點:

@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> 
     } 
}