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 :

Peupler un TreeView dans le CodeBehind


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Peupler un TreeView dans le CodeBehind
    Salut à tous.

    Je me lance sur un truc que je connais pas encore : le TreeView.
    J'ai regardé une doc là : http://quickstarts.asp.net/QuickStar.../treeview.aspx
    Et plus particulièrement celui là : http://quickstarts.asp.net/QuickStar...lang=VB+Source

    Et celui là : http://quickstarts.asp.net/QuickStar...TreeView10.src

    Alors le truc c'est ça marche bien, mais ce n'est pas tout à fait ce que je veux. Je voudrais un mélange des deux.

    En gros, je veux présenter des produits par catégorie. J'ai donc une table de catégorie avec un système de catégorie parent. Je ne connais pas au préalable la profondeur des catégories, elles peuvent sur deux étages ou sur 5 et pas forcément toute sur le même nombre d'étages.
    L'idée c'est de pouvoir peupler les noueds au fur et à mesure qu'il trouve des catégories enfants.

    Et là je bloque sur un truc tout couillion : je comprend pas comment peupleur le noeud de deuixème étage. Donc, encore moins ceux d'en dessous.

    Voici mon code actuel :
    Dans le Init de ma page :
    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
     
    Dim lstCateg As New TreeView
            Dim lstCategNode As New TreeNode
            With lstCategNode
                .Text = "Catégorie"
                .Value = 0
                .SelectAction = TreeNodeSelectAction.Expand
                .PopulateOnDemand = True
            End With
            With lstCateg
                AddHandler lstCateg.TreeNodePopulate, AddressOf PopulateNode
                .ExpandDepth = 1
                .ID = "lstCateg"
                .Nodes.Add(lstCategNode)
            End With
    Aprés j'ajoute le lstCateg dans une Cellule d'une Table, tout simplement
    Et la sub de population :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
       Sub PopulateNode(ByVal source As Object, ByVal e As TreeNodeEventArgs)
     
            Dim dt As DataTable = New DManager("DataDev").RetournerTable("EXEC dbo.BOUTIQUE_ListeCategorie " & e.Node.Value)
            For Each dr As DataRow In dt.Rows
                Dim newNode As New TreeNode(dr.Item("NomCategorie"), dr.Item("IdCategorieProduit"))
                e.Node.ChildNodes.Add(newNode)
            Next
    End Sub
    Il ne me sort que mes catégories de premier niveau et je comprend pas ce que dois faire pour qu'il aille me chercher les autres pour chaque noeud rencontré.

    Pouvez m'aider ?

  2. #2
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    OOOOPPPSSS pas réveillé ce matin, j'ai trouvé, j'ai juste oublie de mettre une populateondemand.

    Donc, ça marche maintenant.

    Mais j'ai un autre souci : j'ai du mal avec l'expand.
    Voici l'état actuel de mon code de poulateondemand

    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
     
    Dim dt As DataTable = New DManager("DataDev").RetournerTable("EXEC dbo.BOUTIQUE_ListeCategorie " & e.Node.Value)
            For Each dr As DataRow In dt.Rows
                Dim newNode As New TreeNode
                With newNode
                    .Text = dr.Item("NomCategorie")
                    .Value = dr.Item("IdCategorieProduit")
                    .NavigateUrl = GetPage(NomPage, enTypeRetour.Lien) & "&mode=catalogue&categ=" & dr.Item("IdCategorieProduit")
                    .PopulateOnDemand = True
                    .SelectAction = TreeNodeSelectAction.SelectExpand
                    If Request.QueryString("categ") = .Value Then
                        .Expand()
                    End If
                End With
                e.Node.ChildNodes.Add(newNode)
            Next
    L'idée c'est donc d'envoyer une page du catalogue en fonction du noeud cliqué. L'ID de catégorie est passé en Query.
    Ensuite, ce que je voudrais c'est que le noeud de la catégorie en question soit déployé. si la catégorie est au premier étage, c'est bon, il se déploie.

    Mais lorsque la catégorie est à un étage inférieur, ça marche pas, enfin pas vraiment. C'est à dire que le noeud est bien déployé, mais pas son père.
    Et je trouve pas le moyen de lui dire de déployer tous ses pères (ne sachant pas combien il y a à un moment donné).

    Pouvez vous m'aider ?

Discussions similaires

  1. [VBA-EXcel] classement des noeuds d'une treeview dans l'ordre alphabétique
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/01/2017, 19h02
  2. [XUL] FireFox 1.5.0.4 ne supporte plus les treeview dans les appli web
    Par ultraboa dans le forum Autres langages pour le Web
    Réponses: 9
    Dernier message: 23/11/2006, 10h52
  3. [C#]Copier un treeview dans un autre
    Par fafa139 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 24/04/2006, 02h35
  4. Style treeview dans une flexgrid
    Par Dnx dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 05/01/2006, 18h22
  5. TreeView dans une fenêtre de dialogue
    Par Bilouzzz dans le forum MFC
    Réponses: 3
    Dernier message: 16/09/2005, 15h55

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