首页 > 解决方案 > Telerik MVC DropDownTree 的数据源错误

问题描述

我的 Telerik MVC Dropdowntree 报告数据源的错误“对象不支持属性或方法‘级别’”。

有人可以看看下面并告诉我出了什么问题吗?

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":[  

                  ]
               }
            ]
         }
      ]
   }
]

显然我的帖子代码太多,细节不够,所以我不得不在帖子末尾写一些愚蠢的东西来欺骗系统允许我发布它。这很烦人。

标签: telerikkendo-asp.net-mvctelerik-mvc

解决方案


我不确定您是否可以返回整个树并将其绑定到下拉树...

如果您查看Telerik 的演示,您会发现它们一次只返回一个级别,所以在您的情况下,我认为它首先只需要第一级 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 }
]

希望能帮助到你!


推荐阅读