kendo ui 是否支持嵌套数据源?我有一个表,其中我需要其中一个列才能有一个嵌套表。我也没有使用 json 来填充。在我能找到的任何小文档中,它都说支持嵌套数据源,但那些使用 json。如果有人可以提供如何实现这一点的示例,那将非常有帮助。
问问题
1802 次
2 回答
1
简短的回答:是的, HierarchicalDataSource 只是嵌套的普通数据源的实现。换句话说,每个“节点”都是数据源的一个实例。
没有大量关于 HierarchicalDataSource 如何工作的文档;我个人不得不在源代码中弄乱很多东西才能处理它。Kendo 仅将它用于树视图,并且似乎是专门为它构建的。但是,您可以通过更改传递给它的 Node 模型来或多或少地让它按照您想要的方式运行。
您不能只将此数据源与任何小部件一起使用,小部件需要在内部支持它。我个人不得不创建自己的列表视图实现来使用它,因为我想要嵌套的 CRUD。
于 2013-10-31T19:11:32.627 回答
0
这是一个涵盖嵌套模板的简单列表视图实现。虽然并不完美,但它似乎是应对这一挑战的最简单方法。我还建议这个问题不够清晰。我正在努力回答我认为是障碍的问题。
// Parent ListView
<div id="parent-listview"></div>
// Parent template
<script id="parent-template" type="text/x-kendo-template">
<a>#=ParentDescription#</a>
// Child ListView
<div id="child-listview-#=Id#"></div>
</script>
// Child template
<script id="child-template" type="text/x-kendo-template">
<a>#=ChildDescription#</a>
</script>
// Bind Parent
$("#parent-listview").kendoListView(
{
template: $("#parent-template").html(),
data : parentData
dataBound: function(e) {
// Bind children
$.each(this.dataItems(), function(idx, item) {
bindChildListView(item);
})
}
});
// Bind each child item
function bindChildListView(data) {
$("#child-listview-" + Id).kendoListView({
template: $("#child-template").html(),
dataSource: data.ChildItems
})
}
注意我的数据对象上有一个名为Id的简单 int 属性,但如果需要或其他内容,您可以使用行的 uid。
于 2016-04-07T00:50:47.610 回答