kendo Treelist 一直提示没有要显示的记录
kendo Treelist keeps telling no records to Display
我打算使用 telerik 的一些 kendo 控件,我开始使用 Treelist 控件。我用 Visual Studio 2013 VB 或 C# 来做这个。
计划是创建一个发送一些(序列化)数据的网络服务,用户必须手动按下一个链接到 $Ajax POSTS 数据请求的按钮。该数据应传递给树列表。
但无论我尝试什么,它总是告诉我:No Records to Display
问题:
1 为什么我提供的示例不起作用。我几乎完全复制了其中一个演示。
2 您是否需要单独的数据源,或者您是否也可以将数据直接放在树列表中?
提前致谢。
瑞克(荷兰)
样本:
`<script type="text/javascript">
$(document).ready(function () {
var dataSource = new kendo.data.TreeListDataSource({
data: [
{ "Item": "Item0", "id": 0, "ParentId": null },
{ "Item": "Item1", "id": 1, "ParentId": 0 },
{ "Item": "Item2", "id": 2, "ParentId": 1 },
{ "Item": "Item3", "id": 3, "ParentId": 1 },
{ "Item": "Item4", "id": 4, "ParentId": null },
{ "Item": "Item5", "id": 5, "ParentId": null },
{ "Item": "Item6", "id": 6, "ParentId": 5 },
{ "Item": "Item7", "id": 7, "ParentId": 5 },
{ "Item": "Item8", "id": 8, "ParentId": 7 },
{ "Item": "Item9", "id": 9, "ParentId": 7 }
],
schema: {
model: {
id: "id",
expanded: true
}
}
});
$("#treelist").kendoTreeList({
dataSource: dataSource,
height: 540,
columns: [
{ field: "Item" },
{ field: "id" },
{ field: "ParentId" }
]
});
});
</script>
这是一个简单的拼写错误,"ParentId" 需要是 parentId(注意小写 p)。
查看此 dojo 以获得工作版本。
我以前也犯过这个错误。
如果是顶级记录,parentId 也需要为空。这真的把我绊倒了。
有谁知道是否可以将具有不同名称的数据库列指定为 parentid?例如,我的 table 有 node_id 和 parent_node_id.
@user4659712 是的,您可以定义模式。 parentId 可以是任何东西,只要你通过模式告诉:
vm.treeListDataSource = new kendo.data.TreeListDataSource({
data: organizations,
schema: {
model: {
id: "Id",
fields: {
Id: { type: "number", nullable: false },
parentId: { field: "OverliggendeId", nullable: true }
},
expanded: true
}
},
pageSize: 20
});
别忘了模型定义中的 'parentId' 字段。我们不必以这种方式更改 JSON 属性(ParentId 也需要在字段中描述):
var dataSource = new kendo.data.TreeListDataSource({
data: [
{ Id: 1, Name: "test", ParentId: null },
{ Id: 2, Name: "test 2", ParentId: 1 }
],
schema: {
model: {
id: "Id",
parentId: "ParentId",
fields: {
Name: { field: "Name", type: "string" },
StoreCount: { field: "StoreCount", type: "number" },
ParentId: { field: "ParentId", nullable: true }
},
expanded: true
}
}
});
我打算使用 telerik 的一些 kendo 控件,我开始使用 Treelist 控件。我用 Visual Studio 2013 VB 或 C# 来做这个。
计划是创建一个发送一些(序列化)数据的网络服务,用户必须手动按下一个链接到 $Ajax POSTS 数据请求的按钮。该数据应传递给树列表。
但无论我尝试什么,它总是告诉我:No Records to Display
问题:
1 为什么我提供的示例不起作用。我几乎完全复制了其中一个演示。
2 您是否需要单独的数据源,或者您是否也可以将数据直接放在树列表中?
提前致谢。
瑞克(荷兰)
样本:
`<script type="text/javascript">
$(document).ready(function () {
var dataSource = new kendo.data.TreeListDataSource({
data: [
{ "Item": "Item0", "id": 0, "ParentId": null },
{ "Item": "Item1", "id": 1, "ParentId": 0 },
{ "Item": "Item2", "id": 2, "ParentId": 1 },
{ "Item": "Item3", "id": 3, "ParentId": 1 },
{ "Item": "Item4", "id": 4, "ParentId": null },
{ "Item": "Item5", "id": 5, "ParentId": null },
{ "Item": "Item6", "id": 6, "ParentId": 5 },
{ "Item": "Item7", "id": 7, "ParentId": 5 },
{ "Item": "Item8", "id": 8, "ParentId": 7 },
{ "Item": "Item9", "id": 9, "ParentId": 7 }
],
schema: {
model: {
id: "id",
expanded: true
}
}
});
$("#treelist").kendoTreeList({
dataSource: dataSource,
height: 540,
columns: [
{ field: "Item" },
{ field: "id" },
{ field: "ParentId" }
]
});
});
</script>
这是一个简单的拼写错误,"ParentId" 需要是 parentId(注意小写 p)。
查看此 dojo 以获得工作版本。
我以前也犯过这个错误。
如果是顶级记录,parentId 也需要为空。这真的把我绊倒了。
有谁知道是否可以将具有不同名称的数据库列指定为 parentid?例如,我的 table 有 node_id 和 parent_node_id.
@user4659712 是的,您可以定义模式。 parentId 可以是任何东西,只要你通过模式告诉:
vm.treeListDataSource = new kendo.data.TreeListDataSource({
data: organizations,
schema: {
model: {
id: "Id",
fields: {
Id: { type: "number", nullable: false },
parentId: { field: "OverliggendeId", nullable: true }
},
expanded: true
}
},
pageSize: 20
});
别忘了模型定义中的 'parentId' 字段。我们不必以这种方式更改 JSON 属性(ParentId 也需要在字段中描述):
var dataSource = new kendo.data.TreeListDataSource({
data: [
{ Id: 1, Name: "test", ParentId: null },
{ Id: 2, Name: "test 2", ParentId: 1 }
],
schema: {
model: {
id: "Id",
parentId: "ParentId",
fields: {
Name: { field: "Name", type: "string" },
StoreCount: { field: "StoreCount", type: "number" },
ParentId: { field: "ParentId", nullable: true }
},
expanded: true
}
}
});