Your search did not match any results.
Diagram

Images in Shapes

Note that the Diagram widget is in the community technology preview (CTP) development stage.

The Diagram widget provides shapes with images that are specially designed for use in OrgCharts. You can select a shape with the following image positions: on the left, right, or top of the shape.

In this demo, the Diagram is bound to a data source. The imageUrlExpr option specifies the name of a field that provides a path to images.

Copy to CodeSandBox
Apply
Reset
import React from 'react'; import Diagram, { Nodes, AutoLayout, Edges, Toolbox, Group } from 'devextreme-react/diagram'; import ArrayStore from 'devextreme/data/array_store'; import service from './data.js'; class App extends React.Component { constructor(props) { super(props); this.orgItemsDataSource = new ArrayStore({ key: 'this', data: service.getOrgItems() }); this.orgLinksDataSource = new ArrayStore({ key: 'this', data: service.getOrgLinks() }); } render() { return ( <Diagram id="diagram"> <Nodes dataSource={this.orgItemsDataSource} imageUrlExpr="picture"> <AutoLayout orientation="horizontal" /> </Nodes> <Edges dataSource={this.orgLinksDataSource} /> <Toolbox> <Group category="general" title="General" /> <Group category="orgChart" title="Organizational Chart" expanded={true} /> </Toolbox> </Diagram> ); } } export default App;
import React from 'react'; import ReactDOM from 'react-dom'; import App from './App.js'; ReactDOM.render( <App />, document.getElementById('app') );
<!DOCTYPE html> <html> <head> <title>DevExtreme Demo</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/19.2.4/css/dx.common.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/19.2.4/css/dx.light.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/19.2.4/css/dx-diagram.min.css" /> <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" /> <link rel="stylesheet" type="text/css" href="styles.css" /> <script src="https://unpkg.com/core-js@2.4.1/client/shim.min.js"></script> <script src="https://unpkg.com/systemjs@0.21.3/dist/system.js"></script> <script type="text/javascript" src="config.js"></script> <script type="text/javascript"> System.import('./index.js'); </script> </head> <body class="dx-viewport"> <div class="demo-container"> <div id="app"></div> </div> </body> </html>
#diagram { height: 900px; }
var orgItems = [ { 'id': '106', 'text': 'Development', 'type': 'ellipse' }, { 'id': '107', 'text': 'WinForms\nTeam', 'type': 'ellipse' }, { 'id': '108', 'text': 'WPF\nTeam', 'type': 'ellipse' }, { 'id': '109', 'text': 'Javascript\nTeam', 'type': 'ellipse' }, { 'id': '110', 'text': 'ASP.NET\nTeam', 'type': 'ellipse' }, { 'id': '112', 'text': 'Ken Samuelson', 'type': 'cardWithImageOnLeft', 'picture': '../../../../images/employees/32.png' }, { 'id': '113', 'text': 'Terry Bradley', 'type': 'cardWithImageOnLeft', 'picture': '../../../../images/employees/33.png' }, { 'id': '115', 'text': 'Nat Maguiree', 'type': 'cardWithImageOnLeft', 'picture': '../../../../images/employees/34.png' }, { 'id': '116', 'text': 'Gabe Jones', 'type': 'cardWithImageOnLeft', 'picture': '../../../../images/employees/35.png' }, { 'id': '117', 'text': 'Lucy Ball', 'type': 'cardWithImageOnLeft', 'picture': '../../../../images/employees/36.png' }, { 'id': '119', 'text': 'Bart Arnaz', 'type': 'cardWithImageOnLeft', 'picture': '../../../../images/employees/37.png' }, { 'id': '120', 'text': 'Leah Simpson', 'type': 'cardWithImageOnLeft', 'picture': '../../../../images/employees/38.png' }, { 'id': '122', 'text': 'Hannah Brookly', 'type': 'cardWithImageOnLeft', 'picture': '../../../../images/employees/39.png' }, { 'id': '123', 'text': 'Arnie Schwartz', 'type': 'cardWithImageOnLeft', 'picture': '../../../../images/employees/40.png' } ]; var orgLinks = [ { 'id': '124', 'from': '106', 'to': '108', }, { 'id': '125', 'from': '106', 'to': '109', }, { 'id': '126', 'from': '106', 'to': '107', }, { 'id': '127', 'from': '106', 'to': '110', }, { 'id': '129', 'from': '110', 'to': '112', }, { 'id': '130', 'from': '110', 'to': '113', }, { 'id': '132', 'from': '107', 'to': '115', }, { 'id': '133', 'from': '107', 'to': '116', }, { 'id': '134', 'from': '107', 'to': '117', }, { 'id': '136', 'from': '108', 'to': '119', }, { 'id': '137', 'from': '108', 'to': '120', }, { 'id': '139', 'from': '109', 'to': '122', }, { 'id': '140', 'from': '109', 'to': '123', } ]; export default { getOrgItems() { return orgItems; }, getOrgLinks() { return orgLinks; } };
System.config({ transpiler: 'plugin-babel', paths: { 'npm:': 'https://unpkg.com/' }, defaultExtension: 'js', map: { 'react': 'npm:react@16/umd/react.development.js', 'react-dom': 'npm:react-dom@16/umd/react-dom.development.js', 'prop-types': 'npm:prop-types/prop-types.js', 'devextreme': 'npm:devextreme@19.2', 'devextreme-react': 'npm:devextreme-react@19.2', 'jszip': 'npm:jszip@3.1.3/dist/jszip.min.js', 'quill': 'npm:quill@1.3.7/dist/quill.js', 'devexpress-diagram': 'npm:devexpress-diagram', 'devexpress-gantt': 'npm:devexpress-gantt', 'whatwg-fetch': 'npm:whatwg-fetch@2.0.4/fetch.js', // SystemJS plugins 'plugin-babel': 'npm:systemjs-plugin-babel@0/plugin-babel.js', 'systemjs-babel-build': 'npm:systemjs-plugin-babel@0/systemjs-babel-browser.js' }, packages: { 'devextreme': { defaultExtension: 'js' }, 'devextreme-react': { main: 'index.js' } }, babelOptions: { sourceMaps: false, stage0: true, react: true } });