2012-10-19 62 views
0

我目前使用的代碼:如何在KendoUI中填充樹?

@foreach (var table in Model.TableData) 
{ 
    foreach(var field in table.Fields) 
    { 
     var tableName = table.TableName; 
     var fieldName = field; 

     @(Html.Kendo().TreeView().Name("DatabaseTables").DragAndDrop(true) 

     .Items(treeview => 
      { 
       treeview.Add().Text(tableName).Expanded(false).Items(fields => 
       { 
        fields.Add().Text(fieldName); 
       }); 
      })) 
    } 
} 

這應該是爲每個表的節點,並與領域填充它,但顯然是在創建表每場一棵樹。

回答

2

麻煩的是你的築巢。我通常不使用html助手,但我相信正確的使用將如下所示。

@(Html.Kendo().TreeView().Name("DatabaseTables").DragAndDrop(true) 

    .Items(treeview => 
     { 
      foreach (var table in Model.TableData) 
      { 
      var tableName = table.TableName; 
      treeview.Add().Text(tableName).Expanded(false).Items(branch=> 
      { 
      foreach(var field in table.Fields) 
       { 
       var fieldName = field; 
       branch.Items(fields => 
       { 
       fields.Add().Text(fieldName); 
       }); 
      }});} 
     })) 

你的treeview創建在你的for循環中,它需要在外面,否則你會爲每次迭代生成重複的樹。

+0

非常感謝您的支持 – SamuelDavis