nette
nette

Reputation: 575

Nested Datasources in Kendo UI

Does kendo ui support nested Datasources? I have a table within which I need one of the columns to have a nested table. I am not using json to populate either. In whatever little documentation I've been able to find it says that nested datasources arnt supported but those use json. If someone could provide an example of how to implement this, it would be very helpful.

Upvotes: 1

Views: 1949

Answers (2)

jwize
jwize

Reputation: 4175

This is a simple listview implementation that covers a nested template. While is not perfect it seems to be the simplest way to manage this challenge. I would also suggest that the question lacks clarity. I am reaching to answer what I believe to be the obstacle.

// 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
    })
}

NOTE I have a simple int property called Id on my data objects but you can use the uid of the row if you need to or something else.

Upvotes: 0

monastic-panic
monastic-panic

Reputation: 3997

short answer: yes, the HierarchicalDataSource is just am immplementation of the normal datasource that nests. in other words each "node" is a instance of a datasource.

Kendo API Doc

there isn't a ton of documentation of how the HierarchicalDataSource works; I personally had to mess around a lot in the source code to get a handle on it. Kendo only uses it for the treeview and it seems to be built specifically for it. However, You can more or less get it behave how you want by altering the Node model passed into it.

You cannot just use this dataSource with any widget, the widget needs to support it internally. I personally had to create my own listview implemenation to work with it because i wanted nested CRUD .

Upvotes: 1

Related Questions