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 :

Fusion de cellule d'un DataGridView


Sujet :

C#

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 262
    Points : 163
    Points
    163
    Par défaut Fusion de cellule d'un DataGridView
    bonjour a tous,

    après plusieurs recherches effecutuées sur la question , j'ai pu lire dans plusieurs discussions, entre autre ici , j'en déduit que le fusion de cellules dans un datagridview n'est pas possilble.

    au fait, moi j'ai un dataGridView rempli par requête sql, pour raison de visibilié je voudrais faire un trucs sur les cellules de première colonne seulement dans le genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    tant que (y'a de ligne dans le datagrid)
    {
        si (valeur_ligne(i)==valeur_ligne(i+1))
       {
          fusionner les deux cellules;    
       }
    }
    evidemment fusionner 3 voir 10 cellules si leur valeur est identiques.

    est ce faisable ? ou y'a t il un moyen de contourner le problème graphiquement, uniquement pour amélioré l'affichage.

    Merci.

  2. #2
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    Il suffit de parcourir la première colonne de ton datagrid, et ensuite de jouer sur le rowspan des cellules.
    Si la cellule précédente a la même valeur que la cellule courante, alors tu les merges : si le rowspan est inférieur à 2, tu le settes à 2, sinon tu l'incrémente, et tu masques ta cellule précédente.

    L'exemple de code se base sur un composant Telerik, mais le comportement est exactement le même.

    Code c# : 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
     
    // int column = le numéro de ta colonne.
    for (int rowIndex = RadGrid1.Items.Count - 2; rowIndex >= 0; rowIndex--)
    {
    	GridDataItem gvRow = RadGrid1.Items[rowIndex];
    	GridDataItem gvPreviousRow = RadGrid1.Items[rowIndex + 1];
    	if (gvRow.Cells[column].Text == gvPreviousRow.Cells[column].Text)
    		{
    			if (gvPreviousRow.Cells[column].RowSpan < 2)
    			{
    				gvRow.Cells[column].RowSpan = 2;
    			}
    			else
    			{
    				gvRow.Cells[column].RowSpan = gvPreviousRow.Cells[column].RowSpan + 1;
    			}
    			gvPreviousRow.Cells[column].Visible = false;
    		}
    }

  3. #3
    Membre habitué
    Inscrit en
    Novembre 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 262
    Points : 163
    Points
    163
    Par défaut
    bonjour,

    merci Er3van pour votre réponse, j'ai bien essayer d'appliquer votre méthode mais je ne pense pas que ceci soit applicable sur un dataGridView.

    y'a t il un autre moyen de contourner le problème ?

    Merci.

  4. #4
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    J'ai lu DataGridView, j'ai écrit DataGridView, mais j'ai pensé GridView ! xD

    Du coup oui, une technique ASP pour du Winform ça marchera pas top top..
    Je regarde ce que ça donne en Winform pour me faire pardonner, mais il me semble qu'en v2.0 du framework ça n'était pas (nativement) possible.

  5. #5
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    Bonjour,

    tu as du code à faire. Regardes ICI

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

Discussions similaires

  1. Fusion de cellules DataGridView
    Par gueulederack dans le forum VB.NET
    Réponses: 3
    Dernier message: 16/01/2012, 13h54
  2. Fusion de cellules dans un DataGridView
    Par ZuoYue dans le forum C#
    Réponses: 1
    Dernier message: 08/11/2007, 18h03
  3. [JTable]Fusion de cellules
    Par vincent63 dans le forum Composants
    Réponses: 6
    Dernier message: 13/02/2006, 14h28
  4. [VB6] Problème MsFlexgrid et Fusion des cellules
    Par dubidon dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/02/2006, 09h00
  5. [VBA-E] Fusion de cellule
    Par Nicos77 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/07/2004, 13h24

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