我有一个巨大的树视图要绑定,所以需要渲染所有的父母,然后在展开时渲染孩子。如何在扩展剑道树视图上加载子节点?
我看过下面的线程,但不确定“节点”和“HasNodes”的引用来自他的上一篇文章中说问题已解决。
感谢帮助。
我有一个巨大的树视图要绑定,所以需要渲染所有的父母,然后在展开时渲染孩子。如何在扩展剑道树视图上加载子节点?
我看过下面的线程,但不确定“节点”和“HasNodes”的引用来自他的上一篇文章中说问题已解决。
感谢帮助。
在过去的几天里,我自己一直在玩这个......
首先,您需要定义一个方法,该方法允许您传递节点 ID(您正在扩展的节点)或 null 如果获取根节点并返回节点对象列表。
配置树视图时,请确保您没有将模型设置为使用 'children' 字段 - 这会出于某种原因阻止任何按需加载并将 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");