Mudar cor de fundo da <rich:dataTable> a cada iteração, é possível?

3 respostas
P

Pessoal, é o seguinte:

tenho um rich:dataTable cuja primeira linha iterage com uma lista de dados (até aí tudo normal).
A segunda linha desse rich:dataTable é um rich:subTable que pode ter um número de linhas qualquer.

Eu gostaria de que a cada iteração na lista de dados (considerando uma linha do table e um conjunto de linhas do subTable) a cor de fundo fosse alterada.

Alguém aí tem um palpite de como fazer isso ?

3 Respostas

aluisiodsv

Não entendi como estão.
Posta o trecho da página.

P

Não entendi como estão.
Posta o trecho da página.

aluisiodsv,

acabei demorando pra responder pq minha conta gerou problemas (acho que errei o passw. várias vezes ! rs…) !!!

Primeiro, muito obrigado pela resposta !

Já resolvi o problema e vou tentar descrever a solução textualmente pq não tenho como postar o código agora. Segunda-feira eu posto o fonte !!!

Seguinte: Eu tenho uma lista de objetos de uma classe que vou chamar de A. Dentro do A existe uma lista de objetos de outra classe, que vou chamar de B.

public class A{
    private List<B> lstB;
    // restante da classe ...
}

public class B{
    //conteúdo da classe
}

Os dados de A estão em uma rich:dataTable.
Dentro desse dataTable eu tenho um subTable para exibir os dados da classe B.
Ou seja: p/ cada registro será exibida uma primeira linha na tabela com os dados de A e as linhas subsequentes (ainda desse mesmo registro) seriam uma para cada B existente em lstB. E assim vai enquanto houver A !!!

O problema é que, segundo a especificação que recebi, cada vez que os dados de A fossem exibidos (isso inclui a lista de lstB), a tabela de consulta deveria alterar sua cor de fundo o registro anterior (cinza / branco / cinza / branco).

Suponhamos uma lista com 3 A’s. o primeiro com um B, o proximo com 3 Bs e o outro com 2 Bs.

Seriam 2 linhas cinzas (A + B), 4 brancas ( A + B B B ), 3 cinzas (A + B B) e assim vai … :?

A solução que adotei para isso foi usar a propriedade rowKeyVar (rowKeyVar=“index”) da Table e fazer uma funcao do tipo :

style="#{index==0?'cor1':'cor2'}"

e ai coloquei essa função em cada célula da tabela e da sub tabela !!!
Agora deu pra entender ? rs … vou postar o codigo aqui de qqer forma !!!

aluisiodsv

Agora sim etendi…
Existe outro jeito de fazer isto. Mais fácil, e com um arquivo de css.
Se quiser eu vejo aqui como faz, pq já não me lembro direito os nomes que tem q colocar.

Criado 14 de outubro de 2010
Ultima resposta 18 de out. de 2010
Respostas 3
Participantes 2