2008-10-01 6 views
9

Wie in einem Titel weiß jemand GridView-Header in ASP.NET einfrieren?Wie man GridView Header einfriert?

+0

Sie können überprüfen [this] (http://stackoverflow.com/questions/130564/i-need-my-html-tables-body-to-scroll-and-its-head-to-stay-put) Frage. –

Antwort

2

Option (a) Kauf in ein UI-Paket, das ein aufgemotetes GridView mit dieser integrierten Funktionalität enthält.

Option (b) rollen Sie Ihre eigenen - es ist nicht einfach. Dino Esposito has one approach.

EDIT: Gerade gemerkt, dass der Dino-Artikel zu einem nur Abonnenten Bereich auf der ASPnetPro Magazin Website verlinkt.

Hier ist another approach mit Extendern.

+0

Wie friert man ein, wenn der Header aus einem Hauptheader und einer Anzahl von Subheadern besteht? – bonCodigo

+0

@bonCodigo - Sie erhalten wahrscheinlich bessere Antworten auf Ihre Frage, wenn Sie sie als separate Frage veröffentlichen. In diesem Fall verwenden Sie wahrscheinlich kein ASP.NET GridView, richtig? –

+0

Ich habe Gridviews in der Webanwendung. Aufgrund der serverseitigen Antworten müssen wir uns nur an Gridview halten. Die größte Herausforderung sind die Sub-Header. Im schlimmsten Fall planen wir, die Header in einen HTML-Code zu schreiben und die Header aus der Gridview auszublenden. Aber dann habe ich das schlechte Gefühl, dass DML/CRUD nicht gut funktionieren wird. – bonCodigo

3

Sie können es in der CSS tun

Freeze-Rubrik: 1. Definieren Klasse .Freezing in Sheet:

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

2.Assign Datagrid-Header des CssClass zu Einfrieren

+3

Aber es scheint nur unter IE und nicht unter FF zu funktionieren :(Jedenfalls, danke! :) – rafek

+2

Ausdrücke arbeiten nicht mehr in IE8. –

+0

Genauer gesagt funktionieren Ausdrücke im IE8-Standards-Modus nicht. – EricLaw

2

ich ein ähnliches Problem auch konfrontiert, während in den Web-Anwendungen in Asp.Net Entwicklung 2.0/3.5.

Eines schönen Tages stieß ich auf IdeaSparks ASP.NET CoolControls. Es hilft bei der Anzeige von fixen Spaltenüberschriften, Fußzeilen und Pagern.

Ich benutzte sie persönlich und ich liebte es wirklich!

To check the control click here : IdeaSparks ASP.NET CoolControls

hoffe, das hilft!

2

Ich denke, ich habe eine Lösung von diesem. siehe unten Javascript-Code

<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> 

wo .header die CSS-Klasse des Grid-Header ist.

Fügen Sie einfach dieses Skript auf der Seite hinzu und ersetzen Sie header durch den Klassennamen css, den Sie für Ihre Kopfzeile verwendet haben.