0

我有一个绑定到远程数据的 Kendo UI 树视图;然而,虽然顶级项目正在显示,并且箭头表示有子项目,但单击箭头只会旋转 - 不会展开以显示子节点。任何帮助,将不胜感激。

我的代码如下所示:

var industryTree = new kendo.data.HierarchicalDataSource({
     transport: {
         read: {
             url: 'http://'+document.domain+'/services/TreeIndustries.php',
             dataType: "json"
         },
         schema: {
             model: {
                id:"id"
             }  
         }
     }
});

我的树初始化:

 var industryTreeView=$("#industry-tree").kendoTreeView({
     dataSource: industryTree,
     dataTextField: ["text","text"]

 });

返回的 JSON 验证正确;任何想看的人都可以在这里查看:

http://173.45.233.104/services/TreeIndustries.php
4

1 回答 1

2

很抱歉,“孩子”的有效名称似乎有限制,并且children不是有效名称。

还有一个问题,您在schema内部定义transport了它们何时应该处于同一级别:

var industryTree = new kendo.data.HierarchicalDataSource({
    transport: {
        read: {
            url: 'http://'+document.domain+'/services/TreeIndustries.php',
            dataType: "json"
        }
    },
    schema: {
        model: {
            id:"id"
        }
    }
});

如果您更改 JSON 并替换childrenitemskids甚至_children它应该可以工作。

此外,请记住设置loadOnDemandfalse加载完整的树。

有了这些,您的 DataSource 应该如下所示:

var industryTree = new kendo.data.HierarchicalDataSource({
    transport: {
        read: {
            url     : 'http://' + document.domain + '/services/TreeIndustries.php',
            dataType: "json"
        }
    },
    schema   : {
        model: {
            id      : "id",
            children: "_children"
        }
    }
});

和树初始化:

var industryTreeView = $("#industry-tree").kendoTreeView({
    loadOnDemand : false,
    dataSource   : industryTree,
    dataTextField: "label"

});
于 2013-07-02T14:29:41.550 回答