none
Trier Items Treeview RRS feed

  • Question

  • Bonjour,

    J'ai un Treeview avec des Items et je veux trier ces items avec ordre croissant en ordre alphabétique.

    en faite je récupère l'item dans la classe EntiteBaseDto et je charge le nœud ici donc je récupère bien mon treeview mais j'arrive pas à le trier.

     

     private void ChargerNoeud(TreeNode noeud, IList<EntiteBaseDto> testsDto)
            {
                if (noeud != null && testsDto != null && testsDto.Count > 0)
                {
                    foreach (EntiteBaseDto testDto in testsDto)
                    {
                        TreeNode noeudEnfant = new TreeNode(testDto.Libelle, testDto.Code);
                        noeudEnfant.PopulateOnDemand = false;
                        noeudEnfant.NavigateUrl = "#" + testDto.Ident;
    
                        if (testDto.SousEntites != null && testDto.SousEntites.Count > 0)
                        {
                            this.ChargerNoeud(noeudEnfant, testDto.SousEntites);
                        }
    
                        noeud.ChildNodes.Add(noeudEnfant);
                    }
                }
            }
    

      Cordialement,

     

     

    mardi 11 octobre 2011 08:58

Réponses

  • Bonjour,

    Vous pouvez utiliser la méthode OrderBy de Linq:

            private void ChargerNoeud(TreeNode noeud, IList<EntiteBaseDto> testsDto)
            {
                if (noeud != null && testsDto != null && testsDto.Count > 0)
                {
                    foreach (EntiteBaseDto testDto in testsDto.OrderBy(x => x.Libelle))
                    {
                        TreeNode noeudEnfant = new TreeNode(testDto.Libelle, testDto.Code);
                        noeudEnfant.PopulateOnDemand = false;
                        noeudEnfant.NavigateUrl = "#" + testDto.Ident;
    
                        if (testDto.SousEntites != null && testDto.SousEntites.Count > 0)
                        {
                            this.ChargerNoeud(noeudEnfant, testDto.SousEntites);
                        }
    
                        noeud.ChildNodes.Add(noeudEnfant);
                    }
                }
            }
    
    
    

    Cordialement,


    aelassas.free.fr
    • Marqué comme réponse mimo85 mardi 11 octobre 2011 09:38
    mardi 11 octobre 2011 09:24
    Auteur de réponse

Toutes les réponses

  • Bonjour,

    Vous pouvez utiliser la méthode OrderBy de Linq:

            private void ChargerNoeud(TreeNode noeud, IList<EntiteBaseDto> testsDto)
            {
                if (noeud != null && testsDto != null && testsDto.Count > 0)
                {
                    foreach (EntiteBaseDto testDto in testsDto.OrderBy(x => x.Libelle))
                    {
                        TreeNode noeudEnfant = new TreeNode(testDto.Libelle, testDto.Code);
                        noeudEnfant.PopulateOnDemand = false;
                        noeudEnfant.NavigateUrl = "#" + testDto.Ident;
    
                        if (testDto.SousEntites != null && testDto.SousEntites.Count > 0)
                        {
                            this.ChargerNoeud(noeudEnfant, testDto.SousEntites);
                        }
    
                        noeud.ChildNodes.Add(noeudEnfant);
                    }
                }
            }
    
    
    

    Cordialement,


    aelassas.free.fr
    • Marqué comme réponse mimo85 mardi 11 octobre 2011 09:38
    mardi 11 octobre 2011 09:24
    Auteur de réponse
  • Merci Monsieur Link hhh . ça marche nickel.
    mardi 11 octobre 2011 09:39