Formatação da paginação de um gridview via Java Script (DHTML)

Por - junho 22, 2011

Quantas vezes ja tivemos aquele probleminha de conflito de CSS, aqueles que pra resolver só in-line mesmo mesmo??
Acho que é geral principalmente quando trabalhamos com ASP.NET e webforms… hehehhe

Um dos meus últimos problemas foi a formatação de daquela área do gridview que exibe a paginação, ou melhor, quando habilitamos a propriedade Allow Paging do grid, onde não conseguia formatar adequadamente pois havia um conflito de CSS e o pior deveria aplicar em várias páginas pensei em algumas soluções como fazer uma Skin, fazer uma nova classe css para o gridview, todavia, resolvi fazer diferente usando Javas Script (DHTML).

Então, abaixo segue o códido em Java Script (DHTML) para formatar o a área de paginação de um grid, lembrando que o função deve ser chamada no evento databind() da gridview.

/********************************************************

*Função para formatação da grid em específico da área de paginação
* By Alessandro Gonzalez

********************************************************/

function formataPaginacao(nmGrid) {

    //Pega o elemento

    var grid = document.getElementById(nmGrid);

    //Pega as tabelas existentes internamente na grid

    var tabelasInternas = grid.getElementsByTagName("TABLE");

    //Varre as tags em busca da table que contém os itens da paginação

    for (i = tabelasInternas.length - 1; i >= 0; i--) {

        tabelasInternas[i].style.width = "100px";

        //Pega as células que contém os números

        var celulas = tabelasInternas[i].getElementsByTagName("TD");

        //Varre as células para adicionar a formatação

        for (j = celulas.length - 1; j >= 0; j--) {

            //Formatando as células que contém os números da paginação

            //Procura por página atual

            var spans = celulas[j].getElementsByTagName("SPAN");

            for (y = spans.length - 1; y >= 0; y--) {

                spans[y].style.padding = "3px";

                spans[y].style.border = "solid 1px #DCDCDC";

                spans[y].style.backgroundColor = "#F7F7F7";

                spans[y].style.font = "normal normal 17px verdana";

            }

            //Pega os links

            var links = celulas[j].getElementsByTagName("A");

            for (w = links.length - 1; w >= 0; w--) {

                links[w].style.font = "normal normal 13px verdana";

            }

        }

        //Pega as imagens que contém os next e previus

        var imagens = tabelasInternas[i].getElementsByTagName("INPUT");

        for (k = imagens.length - 1; k >= 0; k--) {

            //Formatando as imagens de paginação

            imagens[k].style.width = "17px";

            imagens[k].style.border = "none";

        }

    }
}


Vale lembrar que o parametro nmGrid é o id da gridview gerado no HTML, lembrando que a propriedade UniqueID não funcionou.
espero que sirva pra vcs, no meu caso funcionou 100%.

Até o próximo.

Alessandro Gonzalez

VOCÊ PODE GOSTAR

0 comments