即使没有孩子,Kendo UI Treeview 也会显示曲折
Posted
技术标签:
【中文标题】即使没有孩子,Kendo UI Treeview 也会显示曲折【英文标题】:KendoUI Treeview shows twisty even when has no children 【发布时间】:2012-12-31 07:00:40 【问题描述】:我有一个 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":[]]]]
我认为问题在于即使没有项目,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】:你是对的,问题是如果它有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 中运行
【讨论】:
以上是关于即使没有孩子,Kendo UI Treeview 也会显示曲折的主要内容,如果未能解决你的问题,请参考以下文章
ASP MVC TreeView的Kendo UI:代表Tree显示Json响应