即使没有孩子,KendoUI Treeview也显示出扭曲

时间:2013-01-16 20:29:08

标签: jquery json kendo-ui kendo-treeview

我有一个kendoui树视图,显示从json数据源获得的一些数据。树视图正在工作,除非它显示子项的扭曲,即使没有子项也是如此。

我相信这与我的json字符串有关,但此时我不相信我可以改变它。

这是json字符串:

[{"Title":"Shared Documents","spriteCssClass":"folder","LastModified":"1/15/2013 10:42:20 AM","Items":[{"Title":"Folder 1","spriteCssClass":"folder","LastModified":"1/15/2013 10:42:20 AM","Items":[{"Title":"Subfolder 1","spriteCssClass":"folder","LastModified":"1/15/2013 10:41:52 AM","Items":[]},{"Title":"Test Tax Document.docx","spriteCssClass":"docx","LastModified":"1/15/2013 10:42:20 AM","Items":[]}]}]}]

我认为问题是即使没有物品,物品[]仍然存在。

这是我的树视图的代码......

var treeDS = new kendo.data.HierarchicalDataSource({
            data: json,
            schema: {
                model: {
                    children: "Items"
                }
            }
        });

var treeview = $("#CCA_DocLibTreeViewer_Tree").kendoTreeView({
            template: "#= item.Title # - #= item.LastModified # <a href='\\#'>View</a>",
            dataSource: treeDS,
            dataTextField: ["Title", "Title"]
        }).data("kendoTreeView");

关于我能做些什么的任何想法?

1 个答案:

答案 0 :(得分:6)

你是对的,问题是,如果它Items length它假定有孩子。

解决方案要么不生成空Items,要么将treeDS定义为:

var treeDS = new kendo.data.HierarchicalDataSource({
    data  : json,
    schema: {
        model: {
            children   : "Items",
            hasChildren: function (node) {
                return (node.Items && node.Items.length > 0);
            }
        }
    }
});

您可以看到我定义了一个hasChildren函数,用于验证node.Items是否存在且其length实际上是否大于0

您可能会在JSFiddle here

中看到它正在运行