填充 kendo 树视图对话框时出现问题:仅填充根节点
Problems populating a kendo treeview dialog: only root nodes are populated
我在尝试使用 JSON 数据填充 kendo treeview
时遇到了一些困难。我的 kendo treeview
只显示根元素而不是子元素。
简而言之,我在js中有以下内容:
var featuremodel = getMetaContentByName("filterJson");
var featuremodeljson = jQuery.parseJSON(featuremodel);
console.log(featuremodeljson);
var local = new kendo.data.HierarchicalDataSource({
data: featuremodeljson,
schema:{
model: {
id: "id",
children: "items"
}
}
});
$("#treeview").kendoTreeView({
dataSource: featuremodeljson,
dataTextField: "FullName",
checkboxes: true,
checkboxes: {
checkChildren: true
},
loadOnDemand: false,
});
我可以在控制台看到,
console.log(featuremodeljson)
这是有效的 Json。我可以看到元素层次结构。但是,kendo 视图仅填充第一层级中的元素——而不是它们的子元素。
Json是这样的:
[{
"id": "No Feature",
"FullName": "No Feature",
"expanded": "true",
"hasChildren": "true",
"items": [ {
"id": "Feature0",
"FullName": "Feature0",
"expanded": "true",
"hasChildren": "true"
}]
},
{
"id": "Sensors",
"FullName": "Sensors",
"expanded": "true",
"hasChildren": "true",
"items": [{
"id": "Feature1",
"FullName": "Feature1",
"expanded": "true",
"hasChildren": "true"
}]
},
{
"id": "Warnings",
"FullName": "Warnings",
"expanded": "true",
"hasChildren": "true",
"items": [ {
"id": "Feature2",
"FullName": "Feature2",
"expanded": "true",
"hasChildren": "true"
}]
},
{
"id": "Languages",
"FullName": "Languages",
"expanded": "true",
"hasChildren": "true",
"items": [ {
"id": "Feature3",
"FullName": "Feature3",
"expanded": "true",
"hasChildren": "true"
}]
}]
对我做错了什么有什么想法吗?
谢谢
我发现了问题 - JSON 不正确。 "expanded" 和 "hasChildren" 都需要布尔属性。因此,值不是 "true"
,而是 true
。
Json应该是这样的:
[{
"id": "No Feature",
"FullName": "No Feature",
"expanded": true,
"hasChildren": true,
"items": [ {
"id": "Feature0",
"FullName": "Feature0",
"expanded": true,
"hasChildren": true
}]
},
{
"id": "Sensors",
"FullName": "Sensors",
"expanded": true,
"hasChildren": true,
"items": [{
"id": "Feature1",
"FullName": "Feature1",
"expanded": true,
"hasChildren": true
}]
}]
我在尝试使用 JSON 数据填充 kendo treeview
时遇到了一些困难。我的 kendo treeview
只显示根元素而不是子元素。
简而言之,我在js中有以下内容:
var featuremodel = getMetaContentByName("filterJson");
var featuremodeljson = jQuery.parseJSON(featuremodel);
console.log(featuremodeljson);
var local = new kendo.data.HierarchicalDataSource({
data: featuremodeljson,
schema:{
model: {
id: "id",
children: "items"
}
}
});
$("#treeview").kendoTreeView({
dataSource: featuremodeljson,
dataTextField: "FullName",
checkboxes: true,
checkboxes: {
checkChildren: true
},
loadOnDemand: false,
});
我可以在控制台看到,
console.log(featuremodeljson)
这是有效的 Json。我可以看到元素层次结构。但是,kendo 视图仅填充第一层级中的元素——而不是它们的子元素。
Json是这样的:
[{
"id": "No Feature",
"FullName": "No Feature",
"expanded": "true",
"hasChildren": "true",
"items": [ {
"id": "Feature0",
"FullName": "Feature0",
"expanded": "true",
"hasChildren": "true"
}]
},
{
"id": "Sensors",
"FullName": "Sensors",
"expanded": "true",
"hasChildren": "true",
"items": [{
"id": "Feature1",
"FullName": "Feature1",
"expanded": "true",
"hasChildren": "true"
}]
},
{
"id": "Warnings",
"FullName": "Warnings",
"expanded": "true",
"hasChildren": "true",
"items": [ {
"id": "Feature2",
"FullName": "Feature2",
"expanded": "true",
"hasChildren": "true"
}]
},
{
"id": "Languages",
"FullName": "Languages",
"expanded": "true",
"hasChildren": "true",
"items": [ {
"id": "Feature3",
"FullName": "Feature3",
"expanded": "true",
"hasChildren": "true"
}]
}]
对我做错了什么有什么想法吗? 谢谢
我发现了问题 - JSON 不正确。 "expanded" 和 "hasChildren" 都需要布尔属性。因此,值不是 "true"
,而是 true
。
Json应该是这样的:
[{
"id": "No Feature",
"FullName": "No Feature",
"expanded": true,
"hasChildren": true,
"items": [ {
"id": "Feature0",
"FullName": "Feature0",
"expanded": true,
"hasChildren": true
}]
},
{
"id": "Sensors",
"FullName": "Sensors",
"expanded": true,
"hasChildren": true,
"items": [{
"id": "Feature1",
"FullName": "Feature1",
"expanded": true,
"hasChildren": true
}]
}]