1

我使用帶有Razor引擎和Asp.net MVC3體系結構的ASP.NET MVC Q3 2011(開放源代碼版本)擴展。 我想將一個網格綁定到具有自引用結構(如樹)的數據庫中的實體。因此,我無法將其定義爲具有固定級別的示例,因爲我不知道此網格有多少個級別。所以,我想將我的網格動態綁定到模型。自我引用分層數據綁定

public class Category : Entity 
{ 
    public virtual int Id {private set; get; } 
    public virtual string Title { set; get; } 
    public virtual string Description { set; get; } 
    public virtual string ParentsPath { set; get; } 
    public virtual IList<Category> Children { get; private set; } 
    public virtual Category Parent { get; set; } 

} 

我也使用流利的NHibernate,因此我在我的實體中存儲子項和父項。

有沒有辦法做到這一點?我在文件中找不到任何東西。 我錯過了什麼嗎?因爲在Ajax和Winform組件中,它已經實現。

謝謝。

回答

1

你不能自動做到這一點,你需要一個foreach迭代並生成項目,然後將它們手動添加到樹中。

我做了PanelBar的時候需要顯示一個層次結構。

下面是一個例子:

@(Html.Telerik().PanelBar() 
.Name("Details") 
.ExpandMode(PanelBarExpandMode.Multiple)  
.Items(items => 
    { 
     var parent = Model.ParentWorkItem; 
     List<WorkItem> lst = new List<WorkItem>(); 

     while (parent != null) 
     { 
      lst.Add(parent); 
      parent = parent.ParentWorkItem; 
     }; 
     for (int i = lst.Count-1; i >=0;i--) 
     { 
      parent = lst[i]; 
      items.Add()      
       .Expanded(false) 
       .Text("...") 
       .LoadContentFrom(...); 
     } 
     items.Add() 
      .Expanded(true) 
      .Text(...) 
      .Content(....); 
    }) 

希望是有幫助的。