使用Kendo UI Web v2012.3.1114时,我遇到的问题是我正在尝试使用我通过AJAX调用服务器检索的节点对TreeView进行简单的附加操作失败,并显示以下错误。
节点与正常读取功能返回的数据格式完全相同。
我已成功将data("kendoTreeView").insertBefore(...)
用于同一个树并调用,但当我尝试使用data("kendoTreeView").append(...)
时,它失败了。
错误讯息:
未捕获的TypeError:对象#的属性“数据”不是a 功能kendo.web.min.js:25
由于我必须能够为以前是叶子的节点创建新的子节点,所以我不能使用任何其他API来执行此操作。
我已经制作了jsFiddle来显示树的定义以及我希望能够做什么。我尝试在Kendo网站上引用工作示例,但似乎只要我使用自定义架构,事情便会向南发展。
以下是我正在使用的jsFiddle的代码:
function populateHierarchyTree(quotaSetID, columnID, treeDiv) {
var transport = {
read: {
url: '/Quota/QuotaHierarchy/GetQuotaHierarchyChildrenFromParent',
dataType: 'json',
data: { columnDefinitionID: columnID, quotaSetID: quotaSetID, batchSize:10 },
type: 'POST'
}
};
var schema = {
model: {
id: 'id',
hasChildren: 'hasChildren'
}
};
var dataSource = new kendo.data.HierarchicalDataSource({
transport: transport,
schema: schema
});
treeDiv.kendoTreeView({
loadOnDemand: true,
dataSource: dataSource,
dataTextField: "text",
});
}
// This function is called with a single node which contains the exact same structure returned from GetQuotaHierarchyChildrenFromParent used by the read. ParentElement could be anything.
function AddNode(node,parentElement,treeView){
treeView.append(node,parentElement);
}
答案 0 :(得分:2)
您如何选择parentElement
?您确定它是kendoTreeView
节点吗?
试试这个:
treeView.append(node, parentElement.closest(".k-item"));
添加.closest(".k-item");
我尝试的是找到node
的最近parentNode
祖先。