0

我目前正在使用代码:

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

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

4

1 回答 1

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 循环中,它需要在外部,否则您将为每次迭代生成重复的树。

于 2012-10-19T03:28:34.593 回答