Telerik MVC DropDownTree

时间:2018-12-16 04:25:14

标签: telerik kendo-asp.net-mvc telerik-mvc

我的Telerik MVC Dropdowntree报告了数据源错误“对象不支持属性或方法'level'”。

有人可以在下面看看并告诉我怎么了吗?

MVC看起来像这样

@(Html.Kendo().DropDownTree()
                    .Name("dropdowntree")
                    .DataTextField("Name")
                    .DataValueField("Id")

                    .HtmlAttributes(new { style = "width: 100%" })
                    .DataSource(dataSource => dataSource
                        .Read(read => read
                            .Action("DoLayers2", "Dev")
                        )
                    )
)

我的控制器返回以下JSON:

[  
   {  
      "Id":1,
      "ParentCategoryId":0,
      "Name":"First Layer",
      "items":[  
         {  
            "Id":2,
            "ParentCategoryId":1,
            "Name":"First SubLayer1",
            "items":[  

            ]
         },
         {  
            "Id":3,
            "ParentCategoryId":1,
            "Name":"First SubLayer2",
            "items":[  

            ]
         },
         {  
            "Id":4,
            "ParentCategoryId":1,
            "Name":"First SubLayer3",
            "items":[  

            ]
         }
      ]
   },
   {  
      "Id":5,
      "ParentCategoryId":0,
      "Name":"Second Layer",
      "items":[  
         {  
            "Id":6,
            "ParentCategoryId":5,
            "Name":"Second SubLayer1",
            "items":[  

            ]
         },
         {  
            "Id":7,
            "ParentCategoryId":5,
            "Name":"Second SubLayer2",
            "items":[  
               {  
                  "Id":8,
                  "ParentCategoryId":7,
                  "Name":"Sub -3",
                  "items":[  

                  ]
               }
            ]
         }
      ]
   }
]

显然我的帖子代码太多,细节也不多,所以我必须在帖子末尾写一些愚蠢的东西,以诱使系统允许我发布它。这很烦人。

1 个答案:

答案 0 :(得分:0)

我不确定您是否可以返回整棵树并将其绑定到dropdowntree ...

如果您选中telerik's demo,您会发现它们一次只返回一个级别,因此,在您的情况下,我认为它首先只希望第一级Id:1和Id:5,然后它将自动要求每个分支的第二级... (Id:1将返回2、3、4,而Id:5将返回6、7,而Id:7将返回8)

如果每个节点都有子节点,您还必须返回:

[  
   { "Id":1, "Name":"First Layer", "hasChildren": true }, 
   { "Id":5, "Name":"Second Layer", "hasChildren": true }
]

希望有帮助!