Bonjours,
D'avance pardon, j'ai peu d'experience en C#...
Je souhaite developper un site avec a gauche une arborescence (un treeview dans ce cas) qui me permette d'affiner le resultat d'une recherche affiché a gauche. Concretement, au chargement de la page, tout les documents cntenus dans l'arbre sont affichés (sur plusieurs pages evidement) et disparaitront au fur et a mesur que l'utilisateur se deplace dans l'arbre (toujours en suivant le chemin du dernier noeud selectionné).
Alors voila, j'ai bindé un TreeView avec un Objet implementant IHierarchyData qui me permet de recuperer une hierarchie depuis une base de donnée. Jusque la tout va bien, le TreeView affiche bel et bien l'abre de la base avec la bonne hierarchie.
Cependant, pour recuperer les documents dans la base de donnée, j'ai besoin de recupérer des informations concernant le noeud en question pour retrouver tout ses documents fils. Seulement la propriété DataItem des TreeNode de mon arbre est toujours Null...
J'avai pensé que celle ci recevait la propriété Item de mon objet lors du Binding mais il faut croire que non... Je suppose donc avoir oublié quelquechose en implementant l'interface mais je ne trouve pas quoi.
Voici le code de mon IHierarchyData :
Voila, j'ai cherché une bonne partie de l'apres midi sur le net et le forum et je n'ai pas trouvé de reponse... Merci d'avance de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 public class NodeHierarchyData: IHierarchyData { private MyTreeKey _nod; //Contient les données du noeud private SqlConnection _sqlCon; public ItvNod(MyTreeKey nod, SqlConnection sqlCon) { _sqlCon = sqlCon; _nod = nod; } public IHierarchicalEnumerable GetChildren() { if (_nod.Hb == (_nod.Lb + 1)) return (null); else return (new MyTreeHierarchy(_sqlCon, _nod)); } public IHierarchyData GetParent() { // Je me permet de racourcir un peu la citation, si ce code est // necessaire je le reposterait } public bool HasChildren { get { if (_nod.Hb == (_nod.Lb + 1)) return (false); else return (true); } } public object Item { get { return (_nod.Copy()); } } public string Path { get { return (_nod.Name); } } public string Type { get { return ("ItvNod"); } } }
Partager