Hello,
j'ai treeview que je dois remplir via une bd access, j'ai une table Categorie qui contient un IdCategorie int , Parent_Cat_Id int ; NomCategorie
un exemple de champs rempli dans la Bd :
ceux sont des catégories principales :
IdCategorie = 1 ; Parent_Cat_Id = -1; NomCategorie = Viande
IdCategorie = 2; Parent_Cat_Id = -1; NomCategorie = Poisson
Pour faire des Sous catégorie :
IdCategorie = 3 ; Parent_Cat_Id = 1; NomCategorie = Viande Rouge
IdCategorie = 4 ; Parent_Cat_Id = 1; NomCategorie = Volaille
Pour faire des sous Cat de sous Cat :
IdCategorie = 5 ; Parent_Cat_Id = 3; NomCategorie = Viande Rouge de Boeuf
si on regarde l'arborescence cela donne : 1 viande, 2 poisson, 1.1 viande rouge, 1.2 volaille, 1.1.1 Viande rouge de boeuf
Je cherche à remplir mon treeview avec les données de la bd et donc de rajouter les bons noeuds c'est à dire les catégories et leurs sous Catégories il peut en avoir X.
Je charge un array avec toutes les catégories et ensuite je fais un truc du style :
private int donneIndex(string node)
{
for(int a =0; a<treeView1.Nodes.Count; a++)
{
if(treeView1.Nodes[a].Text.Equals(node))
return a ;
}
return -1 ;
}
private void Fill(Categorie cat)
{
for(int z = 0 ; z<Cat.size();z++)
{
if(cat.IdCategorie ==((Categorie)(Cat.getc(z))).Parent_Cat_Id)
{
string a =Cat.getc(z).NomCategorie ;
treeView1.c
MessageBox.Show(""+donneIndex(cat.NomCategorie)+ " "+ cat.NomCategorie);
treeView1.Nodes[donneIndex(cat.NomCategorie)].Nodes.Add(a);
Fill(((Categorie)(Cat.getc(z)))) ;
}
}
}
private void FillMyTreeView2()
{
ArrayList fils = new ArrayList() ;
for(int z = 0 ; z<Cat.size();z++)
{
int idParent = ((Categorie)(Cat.getc(z))).Parent_Cat_Id ;
if(idParent == -1)
{
treeView1.Nodes.Add(new TreeNode(((Categorie)(Cat.getc(z))).NomCategorie));
Fill(((Categorie)(Cat.getc(z)))) ;
}
}