2016-04-18 34 views
1

私はwijmo flexグリッドを使用して自分のデータのツリービューを作成していますが、特定のノードに子ノードがあるかどうか、ノードのレベルですが、特定のノードから親ノードに移動することができません。各行の索引も検索されます。wijmoのツリービューのノードから親ノードに移動する方法フレックスグリッド

トピックに関する洞察は非常に役に立ちます。あなたが何をしたいか

$scope.selectionChanged = function(sender,args){ 
     var index = sender.selection.row; 
     var temp; 
     console.log(index); 
     temp = sender._rows[index]._data; 
     console.log(temp.reports); 
    }; 
+0

私はあなたの質問に答えるために役立つでしょう –

+0

私は行のクリックを検出するためにselectionChangedメソッドを使用しています..このメソッドは2つの引数を受け取ります - [sender、args] 送信者オブジェクトがノード全体に子があるかどうかを、行インデックス、階層のレベル、情報を取得することができるグリッド全体の詳細を取得しました。 これで、子ノードにはその識別が必要です親ノード。 –

+0

編集されました。問題のコードを投稿しました。 @KhalidHussain .. –

答えて

0

は、選択した行のデータ項目にアクセスし、それは子供が含まれているかどうかを確認し、設定したフレキシブルグリッドのchildItemPathを使用しています。ここで

はワーキングサンプルです:http://jsfiddle.net/banzor/700e6bn2/1/

そして、ここで私のselectionChangedイベントのコードです。

$scope.selectionChanged = function(sender, args){ 
    var index = args.row; 
    var row = args.panel.rows[index].dataItem; 
    var childPath = sender.childItemsPath; 
    var children = row[childPath]; 

    if (children && wijmo.isArray(children)) { 
     console.log("Has items: " + children.length); 
    } 
}; 
+0

あなたの応答の人のために多くのおかげで..私が欲しかったものを得た。 –

1

FlexGridの行には、通常の行(Rowオブジェクト)とノード(GroupRowオブジェクト)という2つの味があります。通常の行には「レベル」はありませんが、GroupRowオブジェクトにはノードのレベルを取得するために使用できる「レベル」プロパティがあります。

行の親ノードを取得するには、開始したノードよりも「レベル」の小さいノードが見つかるまで、グリッドの行コレクションをスキャンする必要があります。これは

// gets the parent row for a given FlexGrid row. 
// returns the parent row or null if original row doesn't have a parent. 
function getParentNode(row) { 

    // get row level 
    var startLevel = row instanceof(wijmo.grid.GroupRow) ? row.level : -1; 
    var startIndex = row.index; 

    // travel up to find parent node 
    for (var i = startIndex - 1; i >= 0; i--) { 
    var thisRow = row.grid.rows[i], 
     thisLevel = thisRow instanceof(wijmo.grid.GroupRow) ? thisRow.level : -1; 
    if (thisLevel > -1) { 
     if (startLevel == -1 || (startLevel > -1 && thisLevel < startLevel)) { 
     return thisRow; 
     } 
    } 
    } 

    // not found 
    return null; 
}; 

希望:

http://jsfiddle.net/Wijmo5/8n2yde6f/

チェックアウト「GETPARENTNODE」メソッドの実装は、それはあなたが探しているものでなければなりません:

は、ここで示しているフィドルです有用。

+0

ありがとう、ベルナルド。私はその質問を誤解し、役に立たない答えを与えました...それについて申し訳ありません。 – Banzor

関連する問題