0
我有一个组织结构图,有很多层次,下面的图片是从它的一部分中提取的。 我尝试获取选定节点的所有孩子和子孩子,就像“Power Business Unit”节点选择它获得所有3个孩子并且每个孩子都这样做一样。我得到了第一级,但我无法得到树的深度,以提供达到最后一个孩子的循环次数。谷歌可视化组织结构图(节点儿童)
1-我怎样才能得到图表中的最后一个孩子?如何获得树的深度?
2-是否有放大/缩小工具栏或某些东西,我可以添加到图表中?
就是我的画的代码:
google.load('visualization', '1', { packages: ['table', 'orgchart'] });
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'NODE');
data.addColumn('string', 'PARENT');
data.addColumn('string', 'NODEID');
data.addRows(JSON.parse(document.getElementById("<%=HiddenField1.ClientID%>").value));
//
var chart = new google.visualization.OrgChart(document.getElementById('chart_div'));
function selectHandler() {
var selectedItem = chart.getSelection()[0];
if (selectedItem) {
var oInd = data.getValue(selectedItem.row, 2);
var arrLoop = chart.getChildrenIndexes(selectedItem.row);
var arrConcat = chart.getChildrenIndexes(selectedItem.row);
for (var i = 0; i < arrLoop.length; i++) {
var arr2 = new Array(chart.getChildrenIndexes(arrLoop[i]).length);
arr2 = chart.getChildrenIndexes(arrLoop[i]);
for (var j = 0; j < arr2.length; j++) {
arrConcat.push(arr2[j]);
}
arrConcat.concat(arr2);
}
var arrChilds = new Array(arrConcat.length);
for (var i = 0; i < arrConcat.length; i++) {
arrChilds[i] = data.getValue(arrConcat[i], 2);
}
drawTable(oInd, arrChilds);
}
}
google.visualization.events.addListener(chart, 'select', selectHandler);
chart.draw(data, { allowHtml: true });
//for (var i = 0; i < data.getNumberOfRows() ; i++) {
// chart.collapse(i, true);
//}
}
感谢的人,我不知道为什么我没有想到递归之前。 – 2014-12-03 08:13:48
没问题,与proyect祝你好运 – juvian 2014-12-03 17:06:57