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 :

Faire pivoter une grille


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Par défaut Faire pivoter une grille
    Salut tout le monde,

    Je me suis fais une p'tit appli WPF qui utilise le composant de DevExpress PivotTable.

    C'est super il fait exactement ce que je veux ... meme si je ne m'en sert qu'en affichage simple ... pas de groupage ... rien .... que de la "simple rotation" de grille ...

    C'est bien jolie mais tout ça, mais c'est assez lent, et ça me rajoute 10 Mo de DLL ...

    Alors je voudrais savoir s'il il existe une fonction qui permet de calculer directement la rotation pour l'afficher dans une simple DataGrid ou GridView ...

    Si vous avez une piste parcequ aprés une heure à chercher sur Google, y a de tout et de rien avec du linq sans linq du marche et qui marche pas

    Merci d'avance pour votre aide.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut
    salut,
    donc si j'ai bien compris: les lignes deviennent des colonnes, et les colonnes deviennent des lignes !

    Ba c'est plutot simple comme algo non ?
    avec un pti binding sur une datatable par exemple ca devrait etre simple...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut
    cado,
    ca répond à ton besoin:

    init de mon datagrid avec des valeurs
    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
            public Form1()
            {
                InitializeComponent();
     
                DataTable dt = new DataTable();
                dt.Columns.Add("Col1");
                dt.Columns.Add("Col2");
                dt.Columns.Add("Col3");
     
                DataRow dr = dt.NewRow();
                dr["Col1"] = "1";
                dr["Col2"] = "2";
                dr["Col3"] = "3";
                dt.Rows.Add(dr);
     
                dr = dt.NewRow();
                dr["Col1"] = "4";
                dr["Col2"] = "5";
                dr["Col3"] = "6";
                dt.Rows.Add(dr);
     
                dr = dt.NewRow();
                dr["Col1"] = "7";
                dr["Col2"] = "8";
                dr["Col3"] = "9";
                dt.Rows.Add(dr);
     
                dr = dt.NewRow();
                dr["Col1"] = "10";
                dr["Col2"] = "11";
                dr["Col3"] = "12";
                dt.Rows.Add(dr);
     
                dataGridView1.DataSource = dt;
            }

    La c'est l'algo qui permet de retourner dans tout les sens le datagridview
    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
            private void button1_Click(object sender, EventArgs e)
            {
                DataTable dt = dataGridView1.DataSource as DataTable;
     
                DataTable newDT = new DataTable();
                foreach (DataRow createCol in dt.Rows)
                    newDT.Columns.Add("row" + dt.Rows.IndexOf(createCol));  // TO DO faire la gestion des headers
     
                DataRow newDR;
                foreach (DataColumn col in dt.Columns)
                {
                    newDR = newDT.NewRow();
                    for (int i = 0; i < dt.Rows.Count; ++i)
                        newDR[i] = dt.Rows[i].ItemArray[dt.Columns.IndexOf(col)];
                    newDT.Rows.Add(newDR);
                }
     
                dataGridView1.DataSource = newDT;
            }
    tu me pardonneras:
    j'ai pas fait la gestion des headers des colonne/ligne, mais bon faut les recuperer du datagridvew original... cpo compliqué

  4. #4
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Par défaut
    Merci alavoler pour ton aide.

    En fait tu as écrit une fonction pour faire la transposition des colonnes en ligne et des lignes en colonnes.

    Je vais essayer de l'adapter pour faire une fonction de pivot

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut
    rvzip64
    A c'est pour ca que j'ai demandé (assez rapidement) si c'etait bien ce que je pensais... car j'avais un doute

    Je vois pas trop ce que tu veux, pourtant tu as l'air de bien l'avoir exprimé, je ne connais pas les "pivot" c'est sans doute pour ca

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut
    C'est ca que tu veux réaliser?
    http://visualstudiogallery.msdn.micr...2-97325624b0ab


    Parcequ'avec un simple DataGrid ca m'a l'air costo... je ne sais pas ce que les autres en pense...

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

Discussions similaires

  1. comment faire pivoter une animation svp
    Par mantraax dans le forum Flash
    Réponses: 4
    Dernier message: 16/07/2007, 10h27
  2. [VB.NET]Comment faire Pivoter une image
    Par vijeo dans le forum Windows Forms
    Réponses: 1
    Dernier message: 21/09/2006, 08h38
  3. [VB6 ] Comment faire pivoter une IMAGE
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 23
    Dernier message: 09/05/2006, 17h06
  4. Faire pivoter une image dans TImage
    Par Bourak dans le forum Langage
    Réponses: 4
    Dernier message: 17/03/2006, 08h51
  5. Faire pivoter une zone de texte dans un état
    Par YLL dans le forum Access
    Réponses: 3
    Dernier message: 20/02/2006, 20h05

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