2014-09-26 118 views
0

我使用orgchart創建了一個類似於以下內容的圖表。通過存儲在mysql表中的數據生成圖表(使用php)。Google OrgChart - Google可視化

enter image description here

我的問題是要顯示與其他細節將沿着各節點的深度級別。怎麼做?

Example: Food -> Level 1 Vegetable and Meat -> Level 2 Vegetable 1, Vegetable 2 and Meat 1 -> Level 3

**有API方法(data.getSelection.row),以獲得選擇的節點的行(深度)。但它似乎總是給選定節點的索引而不是所選節點的行。 **

回答

1

不知道要如何顯示它們,但這裏是我想出了一個主意:

 var depth = {}; // here we store node depths 
     google.visualization.events.addListener(chart, 'ready', function() { 
      for (var i = 0; i < data.getNumberOfRows(); i++) { 
       depth[i] = 0; // we iniialize all in 0 depth 
      } 
      for (var i = 0; i < data.getNumberOfRows(); i++) { // for each row 
       var childs = chart.getChildrenIndexes(i); // we check its descendants 
       for (var child = 0; child < childs.length; child++) { 
        depth[childs[child]] += depth[i] + 1; // and add the parents depth+1 
       } 
      } 
      console.log(depth) // here we have already all nodes depth 
     }); 
     google.visualization.events.addListener(chart, 'select', function() { 
      if (chart.getSelection().length > 0) { 
       var node_row = chart.getSelection()[0].row; 
       console.log(depth[node_row]) // now just show the depth of selected node 
      } 
     }) 
     chart.draw(data, { 
      allowHtml: true 
     }); 

工作小提琴:http://jsfiddle.net/a2zwqf1r/

+0

非常感謝你的朋友。這是我真正需要的。 – Dipsomania 2014-09-26 19:49:10

+0

我還有一件事要問。有沒有辦法在繪製圖表時顯示節點內的深度級別以及其他詳細信息?到目前爲止,它必須點擊才能獲得深度級別。請看這個圖像的想法。 http://i60.tinypic.com/21oo3fl.png – Dipsomania 2014-09-26 20:01:21

+1

@Dipsomania在這裏你去:http://jsfiddle.net/a2zwqf1r/1/。剛剛第一次繪製後更改了值,刪除偵聽器以避免無限循環,並重新繪製 – juvian 2014-09-26 20:22:21