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
}
}
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 :
Dans le monde de l'agilité, le Product Owner se doit d'écrire des user stories simples,… Read More
Parce que, contrairement à ce que l'on pourrait penser ce soir qu'il pleut des cordes,… Read More
Un peu d’humour en attendant le résultat des élections présidentielles françaises. Read More
Si vous n'avez pas accès à l'interface graphique de votre Linux, vous pouvez modifier l'horloge… Read More
Si quelqu'un m'avait dit en Janvier que je réécrirais un article dans l'année sur des… Read More
Il y a quelques semaines, mois, voire années (tout est subjectif) nos enfants (et nos… Read More