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

- La même chose en TPT par Matthieu MEZIL le il y a 4 heures et 2 minutes

- L'injection SQL n'est PAS un problème QUE pour les développeurs web ! par CoqBlog le il y a 4 heures et 58 minutes

- Un outil pour réaliser des animations WPF basées sur des équations de Bézier par Perspective le il y a 8 heures et 21 minutes

- Sandcastle et CodePlex : le verdict par CoqBlog le il y a 9 heures et 13 minutes

- ssdl view and TPH par Matthieu MEZIL le il y a 10 heures et 54 minutes

- Webcasts sur le Parallel Framework disponibles par Matthieu MEZIL le il y a 12 heures et 40 minutes

- [Silverlight] - Comprendre et Débuter avec Silverlight par Danuz le il y a 17 heures et 25 minutes

- SharePoint : Nouvel article sur l'exportation et Importation de sites SharePoint par Blog Technique de Romelard Fabrice le 07-04-2008, 01:00

- ImagineCup 2008 Final in Paris: Day 1 par Richard Clark le 07-03-2008, 22:48

- PowerShell : Comment utiliser un ENUM .NET dans un script PowerShell par Blog Technique de Romelard Fabrice le 07-03-2008, 18:09