2016-04-18 10 views
1

Ich verwende wijmo Flex Grid, um eine Strukturansicht für meine Daten zu erstellen, kann ich herausfinden, ob ein bestimmter Knoten Kinder oder nicht und was hat ist die Ebene des Knotens, aber ich kann nicht von einem bestimmten Knoten zum übergeordneten Knoten gehen. Der Index für jede Zeile wird ebenfalls abgerufen.Wie zu einem Elternknoten von einem Knoten in einer Baumansicht von Wijmo Flex Raster

Alle Einblicke zu diesem Thema wären sehr hilfreich.

$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

Bitte senden Sie Ihre Detail-Code, wird es hilfreich für uns, Ihre Frage zu beantworten –

+0

Ich benutze SelectionChanged-Methode, um einen Klick auf eine Zeile zu erkennen .. diese Methode erhält zwei Argumente - [Absender, Args] das Absenderobjekt hat habe die Details des gesamten Grids, mit denen ich den Zeilenindex abrufen kann, Ebene in der Hierarchie, Info, ob der Knoten Kinder oder nicht. jetzt, was ich tun muss, ist ein Kind Knoten ein Bedürfnis, seine zu identifizieren Elternknoten .. –

+0

Bearbeitet .posted den Code in der Frage. @ KhalidHussain .. –

Antwort

0

Was Sie tun möchten, ist die dataItem der ausgewählten Zeile zugreifen und sehen, ob es Kinder enthält, die childItemPath des Flextabelle verwenden, die Sie festlegen.

Hier ist ein funktionierendes Beispiel: http://jsfiddle.net/banzor/700e6bn2/1/

Und hier ist der Code für mein selection Ereignis.

$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

Vielen Dank für Ihre Antwort Jungs .. habe, was ich wollte. –

1

Flextabelle Reihen gibt es in zwei Varianten: regelmäßige Zeilen (Row-Objekte) und Knoten (GroupRow Objekte). Normale Zeilen haben keine "Ebene", aber GroupRow-Objekte haben eine "Ebenen" -Eigenschaft, die Sie verwenden können, um die Ebene des Knotens abzurufen.

Um den übergeordneten Knoten einer Zeile abzurufen, sollten Sie die Zeilensammlung des Rasters überprüfen, bis Sie einen Knoten finden, dessen "Ebene" kleiner ist als die, mit der Sie begonnen haben.

Hier ist eine Geige das zeigt:

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

prüfen die Umsetzung des "getParentNode" Verfahrens, das sollte das sein, was Sie suchen:

// 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; 
}; 

Hope this ist sinnvoll.

+0

Danke, Bernardo. Ich habe die Frage falsch gelesen und eine nutzlose Antwort gegeben ... Entschuldigung. – Banzor

Verwandte Themen