如何在KendoUI中填充树?

时间:2012-10-19 03:05:14

标签: c# visual-studio kendo-ui

我目前正在使用代码:

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

这应该为每个表创建一个节点,并用字段填充它,但显然在表中为每个字段创建一个树。

1 个答案:

答案 0 :(得分: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);
                 });
           }});}
      }))

您的树视图创建在for循环中,它需要在外部,否则您将为每次迭代生成重复的树。