New to Kendo UI for jQueryStart a free 30-day trial

Data Binding

Updated on Dec 10, 2025

The Diagram provides options for binding it to data.

Make sure that you are familiar with the Kendo UI for jQuery DataSource component.

To create a hierarchical Diagram, pass a Kendo UI template and a data source as an option.

js
var diagram = $("#diagram").kendoDiagram({
    theme: "default",
    dataSource: [{
      "name": "Telerik",
      "items": [{
        "name": "Kendo"
      }, {
        "name": "Icenium"
      }]
    }],
    shapeDefaults: {
      content: {
        template: "#= item.name #"
      }
    }
}).data("kendoDiagram");
diagram.layout();

The previous example produces a tree diagram with default rectangular shapes. Alternatively, you can also define the data binding through the setDataSource method.

js
diagram.options.template = "#= item.name #";
diagram.setDataSource([{"name": ... }]);

To provide more flexibility, you can control the location and the way to display the data by defining the visualTemplate option. This approach requires the creation of a function which returns a visual element (usually a Group) that contains other visuals which are bound to your data.

The following example demonstrates how to reproduce the same Diagram with ellipses instead with rectangular shapes. The function which returns a visual has a parameter that contains the data item which will be displayed.

js
var visualTemplate = function(options) {
  var dataviz = kendo.dataviz,
      dataItem = options.dataItem;

  var g = new dataviz.diagram.Group({
    autoSize: true
  });

  var r = new dataviz.diagram.Circle({
    width: 100,
    height: 60,
    background: "LimeGreen"
  });

  g.append(r);

  var fn = new dataviz.diagram.TextBlock({
    text: dataItem.name,
    color: "#ffffff",
    fontSize: 16,
    x: 30,
    y: 30
  });

  g.append(fn);
  return g;
};

var diagram = $("#diagram").kendoDiagram({
  dataSource: [{
    "name": "Telerik",
    "items": [{
      "name": "Kendo"
    }, {
      "name": "Icenium"
    }]
  }],
  shapeDefaults: {
    visual: visualTemplate
  }
}).data("kendoDiagram");
diagram.layout();

See Also

In this article
See Also
Not finding the help you need?
Contact Support