我有一个巨大的树视图要绑定,所以需要渲染所有的父母,然后在展开渲染孩子时。如何在扩展剑道树视图上加载子节点?
我看了下面的帖子,但不确定" Node"的引用在哪里?和#34; HasNodes"来自他的上一篇文章,说问题解决了。
感谢帮助。
答案 0 :(得分:2)
过去几天我一直在玩这个...
首先,您需要定义一个方法,允许您传递节点Id(您正在扩展的节点),如果获取根节点并返回节点对象列表,则返回null。
配置树视图时,请确保您没有将模型设置为使用'children'字段 - 这可以防止因某种原因加载任何ondemand并将loadOnDemand设置为true(默认情况下这是默认情况下)。
设置完成后,需要配置transport.read.data以获取节点的ID并将其传递给方法调用。
在我的示例中,我将树模型定义为具有ItemId,ItemName,HasChildItems和ParentTreeId属性的对象。
将HasChildItems设置为true可确保节点可以使用扩展功能。
<强>示例: - 强>
演示配置
// the Datasource
var demoDataSource= new kendo.data.HierarchicalDataSource({
transport: {
read: {
url: urlforyouraction_dataretrieval,
cache: false,
type: 'POST',
dataType: "json",
traditional: true,
data: function (e) {
return {
// e is the node passed in, this is null on initial read
ParentTreeId: !e.id ? null : e.id
}
}
}
},
schema: {
model: {
id: "ItemId",
Name: "ItemName",
hasChildren: "HasChildItems",
parentTreeId: "ParentTreeId"
}
}
});
// the treeview
var demoTree = $("#treeview-left").kendoTreeView({
loadOnDemand: true,
dataSource: demoDataSource,
dataTextField: "ItemName"
}).data("kendoTreeView");