Question

Comme dans le titre, quelqu'un sait-il comment geler l'en-tête GridView dans ASP.NET?

Était-ce utile?

La solution

L'option (a) est intégrée dans un package d'interface utilisateur qui inclut un GridView renforcé avec cette fonctionnalité intégrée.

Option (b) rouler vous-même - ce n'est pas simple. Dino Esposito utilise une approche .

EDIT: Je viens de remarquer que l’article de Dino est lié à une zone réservée aux abonnés du site magazine ASPnetPro.

Voici une autre approche utilisant des extendeurs.

Autres conseils

Vous pouvez le faire dans le css

En-tête de gel: 1. Définir la classe .Geler dans la feuille de style:

.Freezing
{
   position:relative ;
   top:expression(this.offsetParent.scrollTop);
   z-index: 10;
}   

2.Assignez la classe cssClass de l'en-tête de la grille de données à la congélation

Essayez ce projet open-source pour ASP.NET. Il étend GridView pour fournir un en-tête, un pied de page et un pager fixes et une largeur de colonne redimensionnable. Fonctionne bien dans IE 6/7/8, Firefox 3.0 / 3.5, Chrome et Safari.

http://johnsobrepena.blogspot.com /2009/09/extending-aspnet-gridview-for-fixed.html

J'ai moi aussi rencontré un problème similaire lors du développement d'applications Web dans Asp.Net 2.0 / 3.5.

Un beau jour, je suis tombé sur IdeaSparks ASP.NET CoolControls . Il aide à afficher les en-têtes de colonne fixes, le pied de page et le pager.

Je les ai utilisés personnellement et j'ai vraiment adoré!

Pour vérifier le contrôle, cliquez ici: IdeaSparks ASP.NET CoolControls

J'espère que ça aide!

Je pense avoir la solution à ce problème. veuillez voir ci-dessous le code javascript

<script type="text/javascript" language="javascript">
    var orgTop = 0;
    $(document).scroll(function () {
        var id = $("tr:.header").get(0);
        var offset = $(id).offset();
        var elPosition = $(id).position();
        var elWidth = $(id).width();
        var elHeight = $(id).height();
        if (orgTop == 0) {
            orgTop = elPosition.top;
        }
        if ($(window).scrollTop() <= orgTop) {
            id.style.position = 'relative';
            id.style.top = 'auto';
            id.style.width = 'auto';
            id.style.height = 'auto';
        }
        else {
            id.style.position = 'absolute';
            id.style.top = $(window).scrollTop() + 'px';
            id.style.width = elWidth + 'px';
            id.style.height = elHeight + 'px';

        }
    });
</script>

.header est la classe CSS de votre en-tête de grille.

Ajoutez simplement ce script sur la page et remplacez en-tête par le nom de la classe CSS que vous avez utilisé pour votre en-tête.

Essayez ceci devrait résoudre le problème http://www.codeproject.com/KB/webforms/FreezePaneDatagrid.aspx

Vous pouvez essayer l'exemple suivant

Freeze GridView Colonnes

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top