Je travaille sur un composant arborescence et j'ai un peu de problème avec le remplissage du fournisseur de données pour cet arbre.Flex Tree avec des parents et des enfants infinis
Les données que je récupère de ma base de données sont un simple tableau d'objets de valeur. Chaque objet de valeur a 2 propriétés. ObjectID et ParentID. Pour les parents, le ParentID est null et pour les enfants, ParentID est l'ObjectID du parent.
Toute aide avec ceci est grandement appréciée.
Essentiellement l'arbre devrait ressembler à ceci:
Parent1
Child1
Child1
Child2
Child1
Child2
Parent2
Child1
Child2
Child3
Child1
Ceci est le code actuel que je teste avec:
public function setDataProvider(data:Array):void
{
var tree:Array = new Array();
for(var i:Number = 0; i < data.length; i++)
{
// do the top level array
if(!data[i].parentID)
{
tree.push(data[i], getChildren(data[i].objectID, data));
}
}
function getChildren(objectID:Number, data:Array):Array
{
var childArr:Array = new Array();
for(var k:Number = 0; k < data.length; k++)
{
if(data[k].parentID == objectID)
{
childArr.push(data[k]);
//getChildren(data[k].objectID, data);
}
}
return childArr;
}
trace(ObjectUtil.toString(tree));
}
Voici une section transversale de mes données:
ObjectID ParentID
1 NULL
10 NULL
8 NULL
6 NULL
4 6
3 6
9 6
2 6
11 7
7 8
5 8