1

kendo ui 是否支持嵌套数据源?我有一个表,其中我需要其中一个列才能有一个嵌套表。我也没有使用 json 来填充。在我能找到的任何小文档中,它都说支持嵌套数据源,但那些使用 json。如果有人可以提供如何实现这一点的示例,那将非常有帮助。

4

2 回答 2

1

简短的回答:是的, HierarchicalDataSource 只是嵌套的普通数据源的实现。换句话说,每个“节点”都是数据源的一个实例。

剑道 API 文档

没有大量关于 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 回答