Tabela paginada e com diferenciação de cor nas linhas
Publicado por sombriks 22/08/2006
[ Hits: 6.181 ]
Homepage: http://www.google.com/profiles/Sombriks
Este trecho de código serve mais como exemplo pra alguém que precise paginar reultados de um banco de dados. Note que ele foi testado no Firefox, Konqueror, Opera e até mesmo no Internet Explorer, de modo que, de 0 a 10, eu daria 9,5. Espero que seja útil a alguém.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/> <title>Resultados de ALFABETO</title> <style> h3{ color:rgb(255,200,200); } h2{ color:rgb(200,200,200);/* Ver estas três cores pra colorir as linhas da tabela.*/ } h1{ color:rgb(200,200,255); } fieldset{ width: 50%; height: 50%; } table{ border-left: groove ; border-right: groove ; background-color:rgb(200,234,255); width: 100%; height: 100%; } tr{ color: rgb(120,130,140); } td{ } a{ color: rgb(0,250,20); text-decoration: none; } a:hover{ border-style: dashed ; color: rgb(250,20,0); text-decoration: none; } #data01{ } #data1Header{ border-top: groove ; } #data1Footer{ border-bottom: groove ; } .linhaPar{ } .linhaImpar{ } #line01{ background-color: rgb(190,180,170); } #line02{ background-color: rgb(170,180,190); } #line03{ background-color: rgb(190,180,170); } #line04{ background-color: rgb(170,180,190); } #line05{ background-color: rgb(190,180,170); } #line06{ background-color: rgb(170,180,190); } #line07{ background-color: rgb(190,180,170); } </style> <!-- link type="text/css" rel="stylesheet" href="testess.css"/ --> <script type="text/javascript"> <!-- //valores das células da tabela; var dataGrid = [] //Linhas visíveis; var viewPort = 5; //Primeiro da lista exibida, e não o primeiro da grade. var first = 2; //Último da lista exibida. var last = first+viewPort; //Chamado quando o corpo da página carrega function init(){ /* Ao que parece, o processo de se capturar a tabela é a) rápido demais e por isso uma linha ainda nao existe a essa altura b) muito lento de forma que o código continua a ser executado mesmo antes dessa função terminar. por isso um try/catch se faz necessário aqui. */ try{ tabela=document.getElementById('data1'); for(var i=0;i<=tabela.rows.length;i++){ dataGrid[i]=[];//Inicializando uma linha na grade javascript var linha=tabela.rows[i].cells; for(var j=0;j<linha.length;j++){ var dataLine=dataGrid[i]; dataLine[j]=linha[j].innerHTML;//Isto não funcionou com inerText! dataGrid[i]=dataLine; } } } catch(err){ startViewPort(); } startViewPort(); } //Sempre é chamado para limpar a tabela. function clearTable(){ tabela=document.getElementById('data1'); var i=0; while(i<tabela.rows.length){ tabela.deleteRow(i) } } /*Esse faz todo o trabalho; pega os campos salvos nos arrays e põe de volta na tabela */ function startViewPort(){ if(first+viewPort<dataGrid.length && first>=0){ clearTable(); tabela=document.getElementById('data1'); for(var i=0;i<viewPort;i++){ var dataLine=dataGrid[first+i]; //De acordo com o W3C, eu consigo pegar uma referência à linha em tempo de criação. var linha=tabela.insertRow(i); for(var j=0;j<dataLine.length;j++){ var celula=linha.insertCell(j); celula.innerHTML=dataLine[j]; } if(first%2!=0){ if(i%2!=0)tabela.rows[i].style.background="#fdecde"; } else{ if(i%2==0)tabela.rows[i].style.background="#fdecde"; } } } } function firstRow(){ first=0; startViewPort(); } function prevRow(){ if(first!=0)first-=1; startViewPort(); }/* Com as condicionais evita-se de modificar a variável de forma desordenada e se ter um certo efeito de "congelamento" da página visível. */ function nextRow(){ if(first!=dataGrid.length-viewPort-1)first+=1; startViewPort(); } function lastRow(){ first=dataGrid.length-viewPort-1; startViewPort(); } --> </script> </head> <body onload="init();"> <fieldset><legend>Tabela teste</legend> <table id="data1Header"> <tr id="header1"> <th> X </th> <th> X </th> <th> X </th> <th> X </th> </tr> </table> <table id="data1"> <tr id="line1"> <td>a</td> <td>a</td> <td>a</td> <td>a</td> </tr> <tr id="line2"> <td>b</td> <td>b</td> <td>b</td> <td>b</td> </tr> <tr id="line3"> <td>c</td> <td>c</td> <td>c</td> <td>c</td> </tr> <tr id="line4"> <td>d</td> <td>d</td> <td>d</td> <td>d</td> </tr> <tr id="line5"> <td>e</td> <td>e</td> <td>e</td> <td>e</td> </tr> <tr id="line6"> <td>f</td> <td>f</td> <td>f</td> <td>f</td> </tr> <tr id="line7"> <td>g</td> <td>g</td> <td>g</td> <td>g</td> </tr> <tr id="line8"> <td>h</td> <td>h</td> <td>h</td> <td>h</td> </tr> <tr id="line9"> <td>i</td> <td>i</td> <td>i</td> <td>i</td> </tr> </table> <table id="data1Footer"> <tr id="footer1"> <th> <button type="button" onclick="firstRow();"> << </button> </th> <th> <button type="button" onclick="prevRow();"> < </button> </th> <th> <button type="button" onclick="nextRow();"> > </button> </th> <th> <button type="button" onclick="lastRow();"> >> </button> </th> </tr> </table> </fieldset> </body> </html>
Passagem automática de imagens com efeito Opacity
Nenhum comentário foi encontrado.
Atualizar o macOS no Mac - Opencore Legacy Patcher
Crie alias para as tarefas que possuam longas linhas de comando - bash e zsh
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Instalando Zoom Client no Ubuntu 24.04 LTS
Instalando Zoom Client no Fedora 40
Instalando Navegador Firefox no Debian 12
Bloqueando propagandas no Youtube e outros sites com o uBlocker Origin