剑道UI KendoTreeView HierarchicalDataSource不显示节点

Kendo UI KendoTreeView HierarchicalDataSource not showing nodes

本文关键字:显示 节点 HierarchicalDataSource UI KendoTreeView 剑道      更新时间:2023-09-26

我的Kendo UI TreeView没有获得返回的JSON对象添加到TreeView

我可以从被调用的控制器方法中看到,给数据源的Json看起来像这样(但有更多的文件和文件夹)

{"NodeID":-842352767, "Name":"/", "Folders":[{"NodeID":1804712307,"Name":"/$Recycle.Bin","Folders":null,"Files":null},{"NodeID":-582712839,"Name":"/Windows","Folders":null,"Files":null}], "Files":["/.rnd","/msdia80.dll"]}

我的观点如下:

@model ProjName.Models.BrowseNode
<div id ="wrapper">
<h1>Browser</h1>
<div id="treeview" style="float:left;margin: 40px;">
</div>
</div>
<script>
function populateTreeView() {
    var remoteDataSource = new kendo.data.HierarchicalDataSource({
        type: "json",
        transport: {
            read: "FileBrowser/GetHierarchy"
        },
        schema: {
            model: {
                id: "NodeID",
                text: "Name",
                expanded: false,
                children: "Folders",
            },
        }
    });
    $("#treeview").kendoTreeView({
        dataSource: remoteDataSource,
        dataTextField: "Name"
    });
}
$(document).ready(function () {
    populateTreeView();
});

与BrowseNode定义为:

public class BrowseNode
{
    public int NodeID { 
        get
        {
            if (null == Name)
                return default(int);
            return Name.GetHashCode();   
        }
    }
    public string Name { get; set; }
    public List<BrowseNode> Folders { get; set; }
    public List<string> Files { get; set; }
}

有什么明显的错误或者调试这类东西的技巧吗?

结果证明我的JSON不是数据源想要的。它应该是一个在顶层返回的数组,所以JSON用[]括号括起来,如下所示:

[{"NodeID":-842352767, "Name":"/", "Folders":[{"NodeID":1804712307,"Name":"/$Recycle.Bin","Folders":null,"Files":null},{"NodeID":-582712839,"Name":"/Windows","Folders":null,"Files":null}], "Files":["/.rnd","/msdia80.dll"]}]