2008-10-01 24 views
9

Como en un título, ¿alguien sabe cómo congelar el encabezado GridView en ASP.NET?Cómo congelar el encabezado GridView?

+0

Puede consultar [this] (http://stackoverflow.com/questions/130564/i-need-my-html-tables-body-to-scroll-and-its-head-to-stay-put) pregunta. –

Respuesta

2

Opción (a) compre en un paquete de UI que incluya un GridView mejorado con esta funcionalidad incorporada.

Opción (b) haga su propia versión, no es simple. Dino Esposito has one approach.

EDIT: Acabo de darme cuenta de que el artículo de Dino se vincula a un área solo para suscriptores en el sitio de la revista ASPnetPro.

Aquí está another approach utilizando extensores.

+0

Cómo congelar si el encabezado está formado por un encabezado principal y una cantidad de encabezados secundarios? – bonCodigo

+0

@bonCodigo - probablemente obtendrá mejores respuestas a su pregunta si la publica como una pregunta separada. En este caso, es probable que no estés utilizando un GridView ASP.NET, ¿verdad? –

+0

Tengo gridviews en la aplicación web. Debido al mantenimiento de las respuestas del lado del servidor, solo tenemos que seguir con gridview. El mayor desafío son los encabezados secundarios. En el peor de los casos, planeamos colocar los encabezados en un html y ocultar los encabezados de gridview. Pero luego, tengo la mala sensación de que DML/CRUD no funcionará bien. – bonCodigo

3

Puede hacerlo en el css

Freeze Cabecera: 1. Definir la clase de estilo en .Freezing:

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

2.Assign cuadrícula de datos de cabecera de la congelación

+3

Pero parece funcionar solo bajo IE y no bajo FF :(De todos modos, ¡gracias! :) – rafek

+2

Además, las expresiones ya no funcionan en IE8. –

+0

Más específicamente, las expresiones no funcionan en el modo Estándares IE8. – EricLaw

2

también me enfrentaba a un problema similar durante el desarrollo de las aplicaciones web en Asp.Net 2.0/3.5.

Un buen día, me encontré con IdeaSparks ASP.NET CoolControls. Ayuda a mostrar los encabezados de las columnas fijas, el pie de página y el buscapersonas.

¡Los usé personalmente y realmente me encantó!

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

Espero que esto ayude!

2

Creo que tengo una solución para esto. por favor ver más abajo el código 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> 

donde .header es la clase CSS de su encabezado de la cuadrícula.

Simplemente agregue esta secuencia de comandos en la página y reemplace header con el nombre de la clase css que ha utilizado para su encabezado.

Cuestiones relacionadas