Javascript 为什么我的剑道树没有显示我的JSON数据?
我不能让剑道树显示我一生中的任何数据!我有一个WebApi,它返回这个JSON结构:Javascript 为什么我的剑道树没有显示我的JSON数据?,javascript,json,asp.net-mvc,kendo-ui,kendo-treeview,Javascript,Json,Asp.net Mvc,Kendo Ui,Kendo Treeview,我不能让剑道树显示我一生中的任何数据!我有一个WebApi,它返回这个JSON结构: "Id":3, "ParentId":0, "FieldName":"", "Value":"", "OperationId":7, "Children":[{ "Id":4, "ParentId":3, "FieldName":"", "Value":"", "OperationId":8, "Children":[{ "Id":5
"Id":3,
"ParentId":0,
"FieldName":"",
"Value":"",
"OperationId":7,
"Children":[{
"Id":4,
"ParentId":3,
"FieldName":"",
"Value":"",
"OperationId":8,
"Children":[{
"Id":5,
"ParentId":4,
"FieldName":"xyz",
"Value":"abcd",
"OperationId":5,
"Children":null,
"HasChildren":false
},
"Id":6,
"ParentId":4,
"FieldName":"asdf",
"Value":"somedata",
"OperationId":5,
"Children":null,
"HasChildren":false
}],
"HasChildren":true},{.....blah blah you get the picture
我的建议如下:
var Tree;
var Root;
$(document).ready(function () {
Root = new kendo.data.HierarchicalDataSource({
transport: {
read: {
url: "@Url.Action("GetData", "MyController")",
dataType: "json",
type: "POST",
data: { 'someId': 1 }
}
},
schema: {
model: {
id: "Id",
hasChildren: "HasChildren"
}
}
});
Tree = $("#treeview").kendoTreeView({
dataSource: Root,
dataValueField: "Id",
dataTextField: "OperationId",
});
});
我做错了什么?Fiddler和chrome显示了使用json数据调用WebApi的良好结果。页面加载时,剑道树控件显示加载微调器,然后清空。我真的花了好几个小时在这上面
谢谢 HasChildren属性似乎是Children属性的子属性。它不直接脱离层次结构中的顶层对象,类似于与模式定义冲突的ID。这可能是罪魁祸首吗?我认为演示@应该向您展示您需要了解的所有信息,以便将这一个放在袋子中。是的,我要说的第一件事是,您的JSON模型是一个错误……对于孩子们的孩子们,没有大括号。然后,是的,“有孩子”的财产似乎也很奇怪。如果您觉得这些注释不适合您的问题,请发布一个实际的模型。对象结构如下:对象{Id,FieldName,Value,(一些其他属性),haschilds,Children(array)}。这不对吗?HasChildren属性不应该与Children数组处于同一级别吗?您在问题中提供的示例JSON在Children数组中包含HasChildren属性。也许您没有在问题中正确粘贴JSON数据。演示使用jsonp数据,我不会像那样导出数据。我用json导出它。