【问题标题】:Kendo UI KendoTreeView HierarchicalDataSource not showing nodesKendo UI KendoTreeView HierarchicalDataSource 不显示节点
【发布时间】:2013-04-05 16:01:45
【问题描述】:

我的 Kendo UI TreeView 没有将返回的 JSON 对象添加到树视图中。

我可以从被调用的控制器方法中看到,提供给 DataSource 的 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; }
}

有什么明显的错误或调试这类事情的任何提示吗?

【问题讨论】:

    标签: javascript html model-view-controller kendo-ui


    【解决方案1】:

    结果证明我的 JSON 不是 DataSource 想要的。它应该是一个在顶层返回的数组,因此 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"]}]

    【讨论】:

    • 你是如何改变你的json的,你能详细说明一下吗?
    • 听起来像是一个不同的问题。我所要做的就是从一个 json 对象更改为它所期望的 json 数组。即从{'parent':1}[{'parent':1}]
    • @judgeja,您能否更新原始帖子中的代码,以便我们知道您是如何解决问题的?我正在做的事情几乎是你刚刚做的 100%,而且我很难显示子节点。谢谢
    • 很抱歉我没有代码了,我也不记得我做了什么。我只记得我从我的控制器GetHierarchy 方法返回了一个 JSON 对象,其中的数据不起作用,但是当我返回一个 JSON 对象数组时,我的数据在第一个也是唯一的元素中起作用.
    猜你喜欢
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多