Como congelar GridView cabeçalho?
Pergunta
Como em um título, alguém sabe como congelar GridView cabeçalho no ASP.NET?
Solução
A opção (a) comprar em um pacote de interface do usuário que inclui um GridView envenenado com esta funcionalidade built-in.
A opção (b) rolo seu próprio - não é simples. Dino Esposito tem uma abordagem .
EDIT: Só notei que as ligações do artigo Dino para uma área só de assinante no local revista ASPnetPro.
O Aqui outra abordagem usando extensores.
Outras dicas
Você pode fazê-lo no css
Congelar Cabeçalho: 1. Definir classe .Freezing em Stylesheet:
.Freezing
{
position:relative ;
top:expression(this.offsetParent.scrollTop);
z-index: 10;
}
cssclass de 2.Assign Datagrid Header ao congelamento
Tente este projeto open-source para o ASP.NET. Estende-se GridView para fornecer cabeçalho fixo, rodapé e pager e largura da coluna redimensionável. Funciona bem no IE 6/7/8, Firefox 3.0 / 3.5, Chrome e Safari.
http://johnsobrepena.blogspot.com /2009/09/extending-aspnet-gridview-for-fixed.html
Eu também enfrentou um problema semelhante ao desenvolver nas aplicações web em Asp.Net 2.0 / 3.5.
Um belo dia, me deparei com IdeaSparks ASP.NET CoolControls . Ela ajuda a exibir os cabeçalhos das colunas correção, rodapé e pager.
Eu usei-los pessoalmente e eu realmente adorei!
Para verificar o controle clique aqui: IdeaSparks ASP.NET CoolControls
Espero que isso ajude!
Eu acho que eu tenho a solução deste. por favor, veja abaixo o 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>
onde .header
é a classe css do seu cabeçalho Grid.
Basta adicionar este script na página e substituir header
com o nome da classe css você usou para o seu cabeçalho.
Tentar dar um presente deve resolver o problema http://www.codeproject.com/KB/webforms/FreezePaneDatagrid.aspx
Você pode tentar o seguinte exemplo