2

json データソースから取得したデータを表示する kendoui ツリービューがあります。ツリービューは、子アイテムがない場合でも子アイテムのねじれを表示することを除いて機能しています。

これは私の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":[]}]}]}]

問題は、アイテムがなくても 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");

これについて私ができることについて何か考えはありますか?

4

1 に答える 1

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.Itemslength0

JSFiddle hereで実行されているのを見るかもしれません

于 2013-01-16T21:05:07.680 に答える