1

次のような orgchart を使用してグラフを作成しました。mysql テーブルに格納されたデータから生成されたグラフ (php を使用)。

ここに画像の説明を入力

私の質問は、各ノードの深さレベルを他の詳細とともに表示したいということです。どうやってするか?

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

data.getSelection.row**選択したノードの行 (深さ) を取得するAPI メソッド ( ) があります。ただし、選択したノードの行ではなく、選択したノードのインデックスを常に提供しているようです。**

4

1 に答える 1

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/

于 2014-09-26T19:01:23.313 に答える