por Magno Urbano
Para criar algo deste tipo em HTML, precisa declarar a cor de cada linha no código da página ou ajustá-la manualmente caso esteja a fazer a manipulação interactiva da tabela. Agora imagine que depois de criada a tabela, queira aumentar a quantidade de linhas. Não é preciso dizer que novamente precisará editar o código da página, para declarar a cor das novas linhas acrescentadas. Porém, se utilizar um Repeting Region em combinação com parâmetros poderá criar tabelas que se auto-ajustem automaticamente, independente do número de linhas que tenham ou venham a ter. Vamos então à explicação detalhada de como fazê-lo.
Primeiro, é preciso declarar dois parâmetros, como os vistos a seguir, que irão definir as cores das linhas ímpares e pares da tabela e colocá-los na região <HEAD> do código da página.
<!– TemplateParam name=”cor_impar” type=”color” value=”green” –>
<!– TemplateParam name=”cor_par” type=”color”
value=”blue” –>
Depois, é preciso declarar no interior do código da tabela, na parte referente à segunda linha, o comando que indicará ao código a cor a usar conforme o caso (impar ou par).
<tr bgcolor=”@@((_index 1) ? cor_impar : cor_par)@@”>
A explicação para a linha acima é a seguinte: o “” é o operador binário AND que faz a comparação entre o índice da linha da tabela e o número 1. O operador binário AND só produz resultado igual a 1 quando ambos os elementos comparados são 1, caso contrário, fornece sempre 0 como resposta. Se fizermos AND entre os números decimais 4 e 6, o resultado será 4, pela seguinte razão.
6 em binário é 110
4 em binário é 100
Se fizer AND entre 110 e 100 terá o seguinte resultado:
Número 6 | Número 4 | RESULTADO |
1 | 1 | 1 |
1 | 0 | 0 |
0 | 0 | 0 |
tabela 0 -4 : operador binário AND
Na prática um número binário será par se o último dígito for 0 e ímpar se este dígito for igual a 1. Logo, como no caso da tabela estamos a comparar o índice da linha com o valor 1, então toda linha ímpar terá um valor binário cujo último dígito será igual a 1. Analogamente, toda linha par terá binariamente o último dígito do índice igual a 0. Então, toda linha par produzirá um resultado 0 e toda linha ímpar produzirá um resultado 1.
Em programação, dizer que um valor binário é igual a 1 é dizer que equivale ao valor booleano de TRUE (verdadeiro), sendo o 0 equivalente a FALSE (falso).
Na linha <tr bgcolor=”@@((_index 1) ? cor_impar : cor_par )@@”>, temos uma comparação realizada no interior do parêntesis, na forma (_index 1) e logo a seguir vemos um sinal de interrogação. Esta sintaxe equivale a perguntar: “é verdadeiro o AND entre _index e um?”. Se a resposta for afirmativa então é considerada a variável “cor_impar”, caso contrário será considerada “cor_par”. Então, se o resultado do AND for 1 então a linha é ímpar. Neste caso, a variável “cor_impar” será utilizada, caso contrário, teremos a utilização de “cor_par”.
O código HTML completo da tabela que se ajusta automaticamente é o seguinte:
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
<html>
<head>
<title>Tabela Auto Ajustavel</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″>
<!– TemplateParam name=”cor_impar” type=”color” value=”green” –>
<!– TemplateParam name=”cor_par” type=”color” value=”blue” –>
</head>
<body bgcolor=”#FFFFFF”>
<table width=”50%” border=”1″>
<tr>
<td height=”46″> <div align=”center”>
<strong>PRODUTOS</strong></div></td>
<td><div align=”center”>
<strong>PRECcedil;OS</strong></div></td>
<td><div align=”center”>
<strong>CONDICcedil;Atilde;O</strong></div>
</td>
</tr>
<!– TemplateBeginRepeat name=”RepeatRegion1″ –>
<tr bgcolor=”@@((_index 1) ? cor_impar : cor_par )@@”>
<td height=”45″><br> </td>
<td>nbsp;</td>
<td>nbsp;</td>
<!– TemplateEndRepeat –>
</table>
</body>
</html>
Lembre-se que para este exemplo funcionar é preciso gravá-lo como template e depois iniciar a edição de uma nova página a partir do template criado.
Além do “_index”, existem outros parâmetros que poderá utilizar numa região repetitiva, conforme mostrado a seguir.
Parâmetro | Significado |
_index | Corresponde ao índice do tag que se está a referir como por exemplo, as linhas de uma tabela. O primeiro índice tem o valor zero. |
_isFirst | É uma variável booleana. Se tiver o valor True então significa que a região actual é a primeira de uma série repetitiva. |
_isLast | É uma variável booleana. Se tiver o valor True então significa que a região actual é a última de uma série repetitiva. |
_prevRecord | corresponde ao objecto “_repeat” da região anterior. |
_nextRecord | Corresponde ao objecto “_repeat” da região seguinte. |
_parent | Do ponto de vista de uma repeating region dentro de outra (nested repeated region) esta variável refere ao objecto “_repeat” da região externa. |
_numRows | Corresponte ao número total de campos numa “repeating region”. |
tabela 1 -5 : parâmetros de uma região repetitiva
Se gostou desse artigo... | |
:: |
receba as novidades deste site por e-mail! |