création d'un treview avec une table
bonjour, aujourd'hui je m'attaque aux treeview ! c'est la première fois que j'en fais un ^^
voici ma table sql :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| create table categ_piece (
id_categ_piece uniqueidentifier not null,
id_categ_piece_parent uniqueidentifier null,
nom_categ_piece varchar(100) not null,
ordre_categ_piece int not null,
nb_points int not null,
constraint pk_categ_piece primary key nonclustered (id_categ_piece)
)
go
alter table categ_piece
add constraint fk_id_categ_piece_parent foreign key (id_categ_piece_parent) references categ_piece (id_categ_piece)
go |
voici comment, dans mon winform, je cré une liste recueillant tous mes éléments :
Code:
categs_pieces = categ_pieceDAL.GetList();
hey oui, j'utilise le DataAccess et le c#3, une grande évolution pour moi, j'essaie d'être un peu moins nul en prog ^^
bon, j'ai créé une fonction récursive pour créer mon arbre, mais ce n'est pas vraiment une réussite 8O
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| private void Categ_pieceForm_Load(object sender, EventArgs e)
{
une_categ_piece = new categ_piece();
categs_pieces = categ_pieceDAL.GetList();
TreeNode LvlNode = new TreeNode();
remplir_treeview(LvlNode, une_categ_piece);
}
private void remplir_treeview(TreeNode LvlNodeSup, categ_piece une_categ_piece)
{
TreeNode LvlNode = new TreeNode();
List<categ_piece> level_one = new List<categ_piece>();
if(une_categ_piece.id_categ_piece == Guid.Empty)
{
level_one = (from c in categs_pieces
where c.id_categ_piece_parent == null
select c).ToList();
}
else
{
level_one = (from c in categs_pieces
where c.id_categ_piece_parent == une_categ_piece.id_categ_piece
select c).ToList();
}
foreach (categ_piece categorie in level_one)
{
LvlNode.Name = categorie.id_categ_piece.ToString();
LvlNode.Text = categorie.nom_categ_piece;
Categ_pieceTreeView.Nodes.Add(LvlNode);
remplir_treeview(LvlNode, categorie);
}
} |
pourriez-vous (encore) me donner un coup de main svp ? :)
merci