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 :

remplir treeview a partir d'un datatable


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 73
    Points : 51
    Points
    51
    Par défaut remplir treeview a partir d'un datatable
    bonjour ,

    j'ai un tableau qui contient c données:

    ligne 1:

    dossier : root
    dossier parent: ""

    ligne 2 :

    dossier :dossier 1
    dossier parent : root

    ligne 3 :

    dossier :ss dossier 1
    dossier parent : dossier 1

    Pourriez vs m'aider a afficher les donnees dans treeview pour avoir l'architecture des dossiers

    jai essayé avec ce code mais ça pa marché :

    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
    foreach (DataRow row in dtFolders.Rows)
                   {
                       if (row["Father"].ToString() != "")
                       {
                           bool fatherFound = false;
                           for (int i = 0; (i <= tvFolders.Nodes.Count - 1) && (fatherFound == false); i++)
                           {
                               if ((row["Father"].ToString() != ""))
                               {
                                   if (tvFolders.Nodes[i].Text.Trim() == row["Father"].ToString().Trim())
                                   {
                                       TreeNode NewNode = new TreeNode(row["FolderName"].ToString());
                                                                                                     tvFolders.Nodes[i].ChildNodes.Add(NewNode);
                                       this.tvFolders.Nodes.Add(NewNode);
                                                                            fatherFound = true;
                                   }
                               }
     
                           }
                       }
                       else//c'est le dossier root
                       {
                           TreeNode rootNode = new TreeNode(row["FolderName"].ToString() );
                                     rootNode.PopulateOnDemand = true;
                           this.tvFolders.Nodes.Add(rootNode);
     
     
     
     
                       }
    merci d'avance

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    Qu'est-ce qui n'a pas marché?

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 73
    Points : 51
    Points
    51
    Par défaut
    Bonjour ,

    ce qui n'a pas marché c generer l'arborescence des dossiers selon le contenu du datatable .J'ai trouvé la solution :

    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
     
     
    public void BuildTree(DataTable dtFolders)
        {
            foreach (DataRow row in dtFolders.Rows)
            {
                if (row["Father"].ToString() != "")
                {
                    FindAndAddNode(tvFolders.Nodes, row["Father"].ToString(), row["FolderName"].ToString());
                }
     
                else //its the root node
                {
                    TreeNode rootNode = new TreeNode(row["FolderName"].ToString());
     
                    this.tvFolders.Nodes.Add(rootNode);
     
                }
     
     
            }
     
            tvFolders.ShowCheckBoxes = TreeNodeTypes.All;
        }
     
     public void FindAndAddNode(TreeNodeCollection tnc,string folderFather,string FolderName )
        {
            bool fatherFound = false;
     
            for (int i = 0; (i <= tnc.Count - 1) && (fatherFound == false); i++)
            {
                if ((folderFather != ""))
                {
                    if (tnc[i].Text.Trim() == folderFather
                        .Trim())
                    {
                        TreeNode NewNode = new TreeNode(FolderName.ToString());
     
                        tnc[i].ChildNodes.Add(NewNode);//add a child node        
     
                        fatherFound = true;
                    }
                    else
                    {
                        if (tnc[i].ChildNodes.Count > 0)
                        {
                            TreeNodeCollection tvc = tnc[i].ChildNodes;
                            FindAndAddNode(tvc, folderFather.Trim(), FolderName.ToString());//search in child nodes
                        }
                    }
                }
            }
        }
    Ce code permet de chercher pour chaque nom dossier son parent dans le treeview noeud par noeud .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Remplir treeview avec un datatable
    Par Snowjia dans le forum VB.NET
    Réponses: 9
    Dernier message: 08/07/2013, 20h39
  2. [Débutant] Treeview a partir datatable
    Par Ashireon dans le forum VB.NET
    Réponses: 32
    Dernier message: 28/08/2012, 17h05
  3. Remplir Treeview depuis DataTable
    Par Anaxagore dans le forum Windows Forms
    Réponses: 10
    Dernier message: 19/03/2009, 22h44
  4. Remplir un Dataset à partir d'un Treeview
    Par Sinistre_Ecorcheur dans le forum VB.NET
    Réponses: 1
    Dernier message: 11/05/2007, 09h35
  5. Remplir une grille à partir d'un arbre
    Par phplive dans le forum Composants VCL
    Réponses: 1
    Dernier message: 04/08/2005, 17h41

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