Morveus
Messages postés19Date d'inscriptiondimanche 19 décembre 2004StatutMembreDernière intervention12 juin 2007
-
23 mai 2007 à 08:43
cavo789
Messages postés168Date d'inscriptionvendredi 9 janvier 2004StatutMembreDernière intervention28 juillet 2009
-
23 mai 2007 à 12:43
Bonjour,
J'ai un petit problème: j'ai créé un formulaire à deux champs qui permet d'ajouter des données sous forme de nodes dans un TreeView. Ce formulaire, en gros, permet d'associer une description à une adresse IP pour les besoins d'une base de données. Si l'utilisateur souhaite ne pas saisir de description, seule l'adresse IP est affichée. Le TreeView affiche des informations sur un cluster de serveurs précédemment sélectionné: sa catégorie (exemple "Cluster NLB"), son nom, ses adresses IP, ses adresses Intranet (cluster.entreprise.fr), et les noms des noeuds du cluster (suite d'acronymes).
Le TreeView comporte donc ces noeuds:
+Catégorie + Nom Cluster + Adresses IP du Cluster
+ Description Adresse1
Adresse IP1
+ Description Adresse2
Adresse IP2
Adresse IP3 (pas de description)
...
+ Adresses Intranet du Cluster
Adresse1
Adresse2
...
+ Noeuds du Cluster
Noeud1
Noeud2
...
Si l'utilisateur souhaite ajouter une adresse IP, il clique donc sur mon petit bouton "Ajouter", il saisit une adresse dans un champ et une description, puis il valide. Le script analyse: s'il n'y a pas de description, j'ajoute donc l'IP directement sous le noeud "Adresses IP du Cluster" (comme l'IP3 dans mon exemple). Si en revanche il y a une description, j'ajoute d'abord la description, et ensuite l'adresse IP en tant que noeud enfant sous la description en question.
Cela fonctionne pour un ajout simple (adresse IP sans description), mais alors impossible de lui faire ajouter l'IP comme enfant apres avoir ajouté la description!
Tree = mon TreeView
DesBox = TextBox contenant la description
IPBox = TextBox contenant l'IP
ClustersProperties = le formulaire contenant Tree
---------
If
DesBox.Text =
Nothing
Then
ClustersProperties.Tree.Nodes(0).Nodes(0).Nodes(0).Nodes.Add(IPBox.Text)
Dans le cas où DesBox.Text = Nothing, tout fonctionne parfaitement, je peux bien ajouter un noeud en "0,0,0" (c'est à dire Catégorie \ Nom du Cluster \ Adresses IP du Cluster).
En revanche, lorsque DesBox.Text contient un texte, la machine se contente d'ajouter la description, mais la ligne juste avant le End If ne produit rien (mais il n'y a pas d'erreur!).
La variable LastNode permet de retrouver l'index de du noeud qui vient d'être ajouté (j'ai vérifié la valeur de cette variable, et elle est correcte dans chaque cas que j'ai testé!).
Autre petite chose: si je remplace "LastNode" par un entier qui symbolise un noeud déjà existant, l'adresse IP est bien ajoutée sous ce noeud !
Je ne comprends pas vraiment le problème, puisque tout me semble logique (mise à part justement cette histoire de noeud qui ne veut pas se créer en tant qu'enfant sous un autre noeud créé 2 lignes de code avant lui...)
Morveus
Messages postés19Date d'inscriptiondimanche 19 décembre 2004StatutMembreDernière intervention12 juin 2007 23 mai 2007 à 09:38
Arf !
J'ai trouvé mon erreur, et croyez moi je galere depuis un moment!
Comme je n'affichais pas les "+" devant les lignes (mon TreeView doit ressembler à un schéma), je ne pouvais pas m'en rendre compte... Mais tout fonctionnait bien, et mon IP se retrouvait sous la description... En collapsed ^^
Avec un ExpandAll() j'ai réglé le problème...
Merci quand même à ceux qui ont pu lire mon message et qui ont commencé à y réfléchir lol