Pergunta

Como em um título, alguém sabe como congelar GridView cabeçalho no ASP.NET?

Foi útil?

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

Congelar GridView colunas

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top