Fusion de cellule ... biologique et non numerique

[C#] Fusionner des cellules dans le header d’un gridview

Bien qu’il soit simple de fusionner des cellules d’un Gridview en C# le designer de VS ne nous le permet pas.
Pas le choix, il va falloir aligner quelques lignes de code.
Le code suivant va nous permettre de fusionner des cellules (équivalent d’un colspan en html) dans le header (en-tête) d’un Gridview.


protected void GridView1_DataBound(object sender, EventArgs e){
        try
        {
            GridView1.HeaderRow.Cells[0].ColumnSpan = 2;
            GridView1.HeaderRow.Cells[1].Visible = false;
        }
        catch
        {
            //On ne fait rien le gridview est vide.
            //pour éviter ce type d'exception il suffit de vérifier que le gridview n'est pas vide
        }    
}


Fusion de cellule ... biologique et non numérique
Fusion de cellules … biologiques et non numeriques d’un gridview

Le code précédent est exécuté lorsque l’événement databound du gridview est déclenché ( la liaison de données au gridview est terminée ).
Placer ce code dans l’événement databound du gridview permet de conserver le colspan quelque soit l’événement ayant eu lieu sur la gridview (sorting, pageindexchanging, rowediting etc…)



Dans l’exemple ci-dessus la cellule 0 (Cells[0]) de la ligne Header (HeaderRow) est fusionnée à la cellule 1 (ColumnSpan = 2).
La cellule 1 ne doit quand à elle plus être affichée (Cells[1].Visible = false;).


Il ne reste plus qu’à insérer un label, un bouton … dans la cellule 0.

GridView1.Row[5].Cells[0].ColumnSpan = 2;

(on pourrait éventuellement fusionner des cellules d’une ligne même si l’utilité reste plus limitée).



Vous aimez le CSharp? Alors lisez l’article suivant :


Point d’intérêt de cet article : Csharp, optimisation, gridview, cellule, fusion.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.