Dami_bachelet
Messages postés12Date d'inscriptionsamedi 29 avril 2006StatutMembreDernière intervention 9 janvier 2007
-
31 mai 2006 à 00:48
cs_GG29
Messages postés326Date d'inscriptionvendredi 23 décembre 2005StatutMembreDernière intervention 8 février 2011
-
27 oct. 2006 à 17:46
Bonjour tout le monde, comment allez-vous dans ce monde de la programmation ^^ ?
J'ai besion de votre aide concernant un petit prog qui utilise des
documents xml et un treeview... j'ai mis ce topic ici, car meme si pour
l'instant mon pb n'est pas totalement sur le xml, je pense que je v en
avoir bientot ;p...
J'ai donc un pb avec le treeview, j'aimerais assigner plusieurs valeurs
pour un node dans le treeview, comme ca on pourrait avoir plusieurs
sortie pour un appel de node...
Javais lu un truc vachement sympa qui permettait de faire la meme chose
avec des listbox, c'était genial, mais je n'arrive pas a trouver de
meme pour les treevieew...
Bon, pour pas vous laisser sans rien sous la dent ^^ je vous passe les infos pour :
J'ai 2 fichiers xml, liste.xml :
<liste>
<ordinateur poste="nom_du_poste">
<fonction>fonction_de_lutilisateur</fonction>
<nom>nom_du_susnommeplushaut</nom>
</ordinateur>
</liste>
et groupes.xml :
<triage>
<organisation nom="org_01">
<groupe nom="grp_01">
poste_01
poste_02
</groupe>
</organisation>
</triage>
de plus... j'ai réussi apres pas mal d'echecs (je suis novice en c#) a faire ca... :
XmlDocument doc_xml = new XmlDocument();
doc_xml.Load("c:/groupes.xml");
XmlNode
xml_org = doc_xml.DocumentElement.FirstChild; // Organisation côté Xml
foreach (XmlNode groupe in xml_org.ChildNodes)
{
XmlNode xml_grp =
doc_xml.DocumentElement.FirstChild.FirstChild; // Groupe côté Xml
TreeNode tre_grp = new
TreeNode(groupe.Attributes["nom"].InnerText); // Groupe côté Tree
foreach (
XmlNode id_poste
in recherche_poste.ChildNodes)
{
TreeNode tre_pst =
new
TreeNode(id_poste.FirstChild.InnerText);
// Création des nodes Postes
tre_pst.Tag = poste.InnerText +
"," + id_poste.LastChild.InnerXml;
tre_grp.Nodes.Add(tre_pst);
// Insertion des postes dans les groupes
}
}
Dami_bachelet
Messages postés12Date d'inscriptionsamedi 29 avril 2006StatutMembreDernière intervention 9 janvier 2007 5 juin 2006 à 02:03
bon, au lieu de chercher a mettre 2 tag, g juste mis une "," entre les
2 infis et g utilisé un split. Mais g une autre question : j'aimerais
pouvoir trouver le dernier node, dans un if, pour n'executer un bout de
code que si c'est le dernier node. J'ai visual studio 2003, il ny a pas
le precieux "level" de la version 2005... avez-vous une id ?
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 5 juin 2006 à 09:21
Salut,
Le tag prend un object comme valeur, il suffit donc de créer une classe qui contient tout tes types et de passer cette classe à ton tag (si tu peux vraiment pas faire autrement).
Pour accéder au dernier TreeNode, est-ce que tu ne peux pas faire qqch comme ceci :
TreeNode lastNode =
this.treeView.Nodes[
this.treeView.Nodes.Count - 1];
tre_grp.Nodes.Add(tre_pst); // Insertion des postes dans les groupes
}
}
tre_org.Nodes.Add(tre_grp); // Insertion des groupes dans les
organisations
}
treeView1.Nodes.Add(tre_org); // Insertion des organisations dans
l'arbre
}
}
avec ca, ca devrait me mettre des nodes "organisations", puis de dans
des nodes "groupes" pour enfin avoir des nodes "postes", le seul pb
c'est que ca me met les nodes "postes" que dans le premier node
"organisation"... et j'arrive pas a résoudre ce pb...
Dami_bachelet
Messages postés12Date d'inscriptionsamedi 29 avril 2006StatutMembreDernière intervention 9 janvier 2007 13 juin 2006 à 15:10
C'est bon, je viens de valider les reponces a mes questions ^^
Sinon, je n'arrive vraiment pas a trouver comment faire pour désactiver le déroulement des nodes du treeview quand on double clique et pour ne pouvoir dérouler qu'un seul node a la fois...
Je me suis vraiment cassé la tete, mais le seul truc que j'arrive a faire c pour le "déroulement unique des nodes" et encore, ca me fait un truc bizarre ou tout les nodes se ferment et ou le node en question se réouvre, mais c'est super lent...