Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

[ASP.NET] Fixer la ligne du Header d'un GridView

Vous avez toujours rêver d' utiliser les GridView, mais il y a trop de lignes.
Vous voulez donc permettre le "scroll" vertical , mais par défaut la ligne de titres scroll aussi, ce qui est gênant ...
Vous voulez trouver une solution pour que la ligne de titre reste fixe comme c' est possible dans Excel.


L'exemple suivant le permet :

1- Créer les deux classes suivantes dans votre CSS :

div.GVScrollCSS
{
  overflow-y: scroll;
  overflow-x: hidden;
}

.GVScrollFixedHeader
{
  position:relative;
  top:expression(this.parentNode.parentNode.parentNode.scrollTop-1);
}

2- Appliquer ces classes CSS dans votre fichier aspx comme dans l'exemple suivant :

<div class="GVScrollCSS">
   <asp:GridView ID="_gvParcelles"  DataKeyNames="PARCEL_ID" runat="server"
            AutoGenerateColumns="False"
            ShowHeader="true" Width="100%">
      <HeaderStyle CssClass="GVScrollFixedHeader" />
      <Columns>
          <asp:TemplateField HeaderText="Colonne1" > 
              <ItemTemplate>
                 <asp:Label ID="lblCol1" runat="server" Text='<%# Bind("COL1") %>' />
              </ItemTemplate>
          </asp:TemplateField>
          <asp:TemplateField HeaderText="Colonne2" >
              <ItemTemplate>
                  <asp:Label ID="lblCol2" runat="server" Text='<%# Bind("COL2") %>' />
              </ItemTemplate>
         </asp:TemplateField>
     </Columns>
  </asp:GridView>
</div>

Cette solution peut également s' appliquer sur l' élément Footer.

PS: Merci à R. Aymard pour cette astuce.

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: mardi 20 mai 2008 12:28 par Guillaume Brout
Classé sous :

Commentaires

white_mage a dit :

Sympa comme astuce.....J'ai hâte de tester ça...

# mai 20, 2008 12:56

cyril a dit :

attention, seulement compatible IE du fait de l'utilisation de expression (qui est buggé dans certains cas).

Je pense qu'on doit pouvoir faire un truc du genre :

table.MyClass tr th {position:fixed;} // pour FF et peut être IE7, bref c'est à tester, il y a peut être aussi des solutions avec la propriété table-layout mais je le connais pas

pour IE6 il faudra de toute facon utiliser cette astuce avec un hack CSS du genre

* html ...

# mai 20, 2008 13:58

white_mage a dit :

Pas de soucis pour moi, je ne développe que des applications pour ie.... :)

# mai 21, 2008 08:56
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- [Refactoring] ReSharper pour Visual Studio 2010 (Preview) par Thomas Jaskula le il y a 3 heures et 22 minutes

- [Refactoring] Analyser vos exceptions avec ReSharper Exceptional par Thomas Jaskula le il y a 4 heures et 36 minutes

- SharePoint 2007 : patterns & practices SharePoint Guidance par Philippe Sentenac [MVP SharePoint] le il y a 18 heures et 15 minutes

- [Visual Studio 2010] Les tests cases c’est bien, mais je vais devoir tout réécrire ? par Etienne Margraff le il y a 19 heures et 12 minutes

- MVP[Gribouillon].AddYear par The Grib's Lair [Sébastien PICAMELOT - MVP SharePoint] le il y a 19 heures et 27 minutes

- Clinique INSIA - Projet de fin d’Etudes (Silverlight 3 MVVM et OutOfBrowser, WCF, TFS) - Part 1 par David REI le 07-02-2009, 23:38

- C’est la crise ? Bah pourquoi cramer du budget pub alors ? par Nix's Blog le 07-02-2009, 15:31

- Soyons MVP ! par TheSaib .NET blog le 07-02-2009, 12:15

- SharePoint : Gestion des Erreurs 6398, 7076 et 6482 par Blog Technique de Romelard Fabrice le 07-02-2009, 11:53

- EF avec WPF par Matthieu MEZIL le 07-02-2009, 10:18