HTMLcopy
1
<div id="container"></div>
CSScopy
6
1
html, body, #container {
2
width: 100%;
3
height: 100%;
4
margin: 0;
5
padding: 0;
6
}
JavaScriptcopy
x
1
anychart.onDocumentReady(function() {
2
3
// data tree
4
var tree = anychart.data.tree([
5
{"name": "Node 1", "id": "1"},
6
{"name": "Parent Node", "id": "2"},
7
{"name": "Child Node 1", parent: 2, "id": "3"},
8
{"name": "Child Node 2", parent: 2, "id": "4"},
9
{"name": "Node 2", id: "5"}
10
], anychart.enums.TreeFillingMethod.AS_TABLE);
11
12
// create stage
13
var stage = anychart.graphics.create("container");
14
15
// create Data Grid
16
treeDataGrid = anychart.standalones.dataGrid();
17
18
// set Data Tree
19
treeDataGrid.data(tree).headerHeight(20);
20
21
// create button for Parent node
22
treeDataGrid.listen("signal", treeDataGrid.draw, false, treeDataGrid);
23
24
// set style for second column
25
treeDataGrid.column(1).cellTextSettingsOverrider(labelTextSettingsOverrider);
26
27
// create new button
28
var triggerButton = document.createElement("div");
29
30
// set button style
31
triggerButton.style.top = "5px";
32
triggerButton.style.right = "5px";
33
triggerButton.style.width = "auto";
34
triggerButton.style.height = "auto";
35
triggerButton.style.backgroundColor = "#444444";
36
triggerButton.style.color = "white";
37
triggerButton.style.position = "absolute";
38
triggerButton.style.zIndex = 2;
39
triggerButton.style.transition = "0.5s";
40
triggerButton.style.textAlign = "center";
41
triggerButton.style.border = "3px solid #444444";
42
triggerButton.style.borderRadius = "7px 7px 7px 7px";
43
triggerButton.style.fontSize = "18px";
44
triggerButton.style.cursor = "pointer";
45
triggerButton.style.MozUserSelect= "none";
46
triggerButton.style.KhtmlUserSelect= "none";
47
triggerButton.style.WebkitUserSelect= "none";
48
triggerButton.style.userSelect= "none";
49
triggerButton.innerHTML = "Add Data";
50
triggerButton.onclick = function() {
51
addPoint();
52
};
53
54
// append button to container
55
container.appendChild(triggerButton);
56
57
// draw chart
58
treeDataGrid
59
.container(stage)
60
.top(triggerButton.offsetHeight + 7).width("100%").draw();
61
62
var title = anychart.standalones.title();
63
title.parentBounds(0, 0, "100%", 30)
64
.text("Click on button to add Data into Data Tree")
65
.container(stage)
66
.draw();
67
68
// data to add
69
var newData = [
70
{name: "new Node 1", id: "6"},
71
{name: "new Parent Node", id: "7"},
72
{name: "new Node 3", id: "8"},
73
{name: "new Child Node", parent: 7, id: "9"}
74
];
75
76
77
function addPoint(){
78
// add data
79
tree.addData(newData, anychart.enums.TreeFillingMethod.AS_TABLE);
80
// remove button
81
container.removeChild(triggerButton);
82
}
83
});
84
85
// style setter
86
function labelTextSettingsOverrider(label, dataItem) {
87
if (!dataItem.getParent()) {
88
label.fontColor("#0055aa").fontWeight("bold").fontSize(12).fontStyle("italic");
89
} else {
90
if (dataItem.numChildren()) {
91
label.fontColor("#559955").fontWeight("bold").fontStyle("italic");
92
}
93
}
94
}