IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Sélection d'un noeud dans un treeview


Sujet :

ASP.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 43
    Par défaut Sélection d'un noeud dans un treeview
    Bonjour,

    je n'arrive pas à trouver la méthode pour sélectionner un noeud dans un treeview.

    J'ai tenté sans succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    treeview1.SelectedNode = myNode
    Cette propriété est en lecture seule...

    Merci d'avance pour votre aide.

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Que veux tu faire avec le noeud que tu souhaites récupérer ?
    Veux tu effectuer un traitement dessus, récupérer sa valeur, sa profondeur, ect.

    Dis en un peu plus car plusieurs solutions existent

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 43
    Par défaut
    En gros, j'ai un treeview avec une liste d'utilisateur.

    - Sur clic du bouton ajout, je déselectionne le noeud éventuellement sélectionné.
    - Puis après avoir remplit et validé un petit formulaire, je créé le nouveau noeud.
    - Je veux ensuite le sélectionner.

    C'est cette dernière étape qui me pose problème.

  4. #4
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    La propriété SelectedNode est effectivement en ReadOnly, il faut donc que tu te balade dans les items de la collection de nodes de ton treeview pour ensuite utiliser la méthode select du noeud recherché.

    Avec quelque chose comme ca tu devrais y parvenir:
    TreeView.Nodes.Item(i).Select()

    Le problème est de récupérer l'index de ton noeud.
    Si tu l'ajoutes à la fin du treeview, pas trop de problème, tu comptes les noeuds à l'aide d'un Nodes.count et tu trouveras le nombre de noeuds existants.
    Si tu l'ajoutes au milieu, il va falloir bucher un peu plus pour récupérer le positionnement de ce noeud.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 43
    Par défaut
    Ok donc je suis bon pour me taper une petite fonction récursif pour récupérer l'index du noeud qui m'intéresse, et le sélectionner à l'aide de .Select

    Merci.

  6. #6
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Ouais, y'a des chances...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Par défaut
    Voila la fonction récursive que j'avais fait pour un site web.

    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
    ''' <summary>
            ''' Recherche une valeur dans un arbre et expand l'arbre jusqu'a cette valeur
            ''' </summary>
            ''' <param name="pnode">Arbre (treeview) ou Node (treenode) sur lequel s'effectue la recherche</param>
            ''' <param name="pId">id de l'élément à rechercher</param>
            ''' <returns>true si la valeur a été trouvé, sinon false</returns>
            ''' <remarks></remarks>
            Public Function RechercherNode(ByRef pnode As Object, ByVal pId As Integer) As Boolean
                Dim element As New c_element(cnxBDD)
                Dim node As New TreeNode
                Dim tv As New TreeView
                'On teste si on a à faire à une treenode ou à un treeview
                If pnode.GetType.ToString = node.GetType.ToString Then
                    For Each node In CType(pnode, TreeNode).ChildNodes
                        If node.Value = pId Then
                            node.Select()
                            Return True
                        Else
                            If RechercherNode(node, pId) = True Then
                                CType(pnode, TreeNode).Expand()
                                Return True
                            End If
                        End If
                    Next
                ElseIf pnode.GetType.ToString = tv.GetType.ToString() Then
                    'On a à faire à un treeview
                    For Each node In CType(pnode, TreeView).Nodes
                        If node.Value = pId Then
                            node.Select()
                        Else
                            If RechercherNode(node, pId) = True Then
                                node.Expand()
                                Return True
                            End If
                        End If
                    Next
                Else
                    'type incorrect
                    Return False
                End If
            End Function
    Je pense l'avoir assez tester pour dire qu'elle marche pas trop mal.

Discussions similaires

  1. problème de sélection d'un noeud dan un treeview
    Par TaymouWan dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/03/2009, 16h05
  2. Sélection d'un noeud dans un treeview
    Par saphir54321 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 23/04/2007, 09h54
  3. [VB.NET] Trouver noeud dans un TreeView
    Par PM_calou dans le forum Windows Forms
    Réponses: 7
    Dernier message: 04/10/2006, 17h42
  4. [VB]Déplacer un noeud dans un TreeView
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 28/11/2005, 18h27
  5. Pbs pour Glisser-Deplacer des noeuds dans un TreeView.
    Par psau dans le forum C++Builder
    Réponses: 3
    Dernier message: 08/09/2004, 21h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo