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

C# Discussion :

Pivoter datatable c#


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 230
    Par défaut Pivoter datatable c#
    Bonjour,

    J'ai besoin de pivoter une datatable, en effectuant des recherches j'ai tombé sur cet exemple http://stackoverflow.com/questions/7...ble-collection mais en essayant de l’exécuter j'ai pas eu le même affichage qu'il montrait en fait j'ai eu cet affichage(voir l'image en pièce jointe, il y a les 2 autres colonnes qui manquait) est ce quelqu'un peut m'aider ou bien si vous avez d'autres exemples comment pivoter datatable je suis prenant.

    Merci.
    Images attachées Images attachées  

  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
    Sans code, impossible de t'aider sur ce point.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 230
    Par défaut
    @calagan99 j'ai crée les classe comme décrivait l'exemple que je viens de le mentionner et dans une page d’accueil j'ai met un GridView. Voici le code de la 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
    16
    protected void Page_Load(object sender, EventArgs e)
            {
                var l1 = new Data1List();
                var l2 = new Data2List();
     
                foreach (var items in l1.GroupBy(d => d.JoinDate))
                {
                    var d2 = new Data2 { JoinDate = items.Key};
                    foreach (var item in items)
                        d2.Sal.Add(item.Sal);
                    l2.Add(d2);
                }
     
                Grid2.DataSource = l2;
                Grid2.DataBind();
            }
    Le résultat que j'ai eu c'est dans l'image en pièce jointe, en fait j'ai pas eu les 2 autres colonnes

  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
    Ce comportement est tout à fait normal.

    La GridView ne peut pas afficher en natif des éléments imbriqués. Or, les champs Dep et salary sont contenus dans une List<Sal>.

    Ou bien tu crées le template de ta Gridview pour gérer cela ou tu modifies l'objet Data2 pour disposer de ces propriétés :
    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
    	public class Data2
    	{
    	    public Data2()
    	    {
    	        Sal = new List<int>();
    	    }
     
    	    public List<int> Sal { get; set; }
    	    public String JoinDate { get; set; }
    	    public int sals { get; set;} 
    	    public string Dep { get; set; }
    	    public override string ToString()
    	    {
    	        return Sal.Aggregate(JoinDate, (current, s) => current + s.ToString());
    	    }
    	}
     
    foreach (var items in l1.GroupBy(d => d.JoinDate))
    {
        var d2 = new Data2 { JoinDate = items.Key };
        foreach (var item in items){
            d2.Sal.Add(item.Sal);
            d2.Dep = item.Dep;
        }
        d2.sals = d2.Sal.Sum();
        l2.Add(d2);
    }

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 230
    Par défaut
    Bonjour,

    Merci calagan99. J'ai trouvé un exemple plus précis et je me suis basé sur pour résoudre le problème. Je cite le lien http://redsouljaz.wordpress.com/2009...om-data-table/.


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

Discussions similaires

  1. [VB.NET][ADO]Fusionner des dataTables
    Par neo.51 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 30/07/2005, 00h22
  2. [VB.NET] Suppression de ligne dans un DataTable
    Par seemax dans le forum Windows Forms
    Réponses: 7
    Dernier message: 06/05/2004, 14h19
  3. Ellipse d'un tube pivotant
    Par clovis dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 18/03/2004, 21h49
  4. Réponses: 2
    Dernier message: 20/02/2004, 08h47
  5. Réponses: 3
    Dernier message: 21/05/2003, 11h44

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