Pessoal estou tentando colocar uma cor diferente para uma coluna do datatable do JSf de acordo com a opcao vinda do banco
alguem sabe como ajudar ?
Pessoal estou tentando colocar uma cor diferente para uma coluna do datatable do JSf de acordo com a opcao vinda do banco
alguem sabe como ajudar ?
Cara nao entendi o que voce quer fazer, voce quer saber como setar a cor com uma variavel, ou como seta no datatable do jsf?
Pq se for o caso da variavel, voce pode informar a expressao dentro do css do proprio jsp (xhtml) que voce tiver construindo a tabela.
no style=“color: #{classe.cordobano}” na propriedade da propria grid.
na verdade estou tentando colocar um cor diferente para o h:collun do datatable de acordo com a opcao vinda do banco ou seja as cores alteraram. No caso abaixo so estou conseguindo fazer isso para o h:outputText do valor da colona e não no <h:collum>
ou seja de acordo com o nivel vindo do banco de dados a coluna ganha um style diferente (cor diferente)
<rich:dataTable id=“tabelaRelatorio” width=“900” border=“1” var=“dominio” value="#{ManterDominio.listaDominioPorUsuario}" binding="#{ManterDominio.tableRelatorio}">
<rich:column id="tema">
<f:facet name="header"><h:outputText value="Tema" /></f:facet>
<h:outputText id="txtTema" value="#{dominio.assunto.tema}"/>
</rich:column>
<rich:column id="area">
<f:facet name="header"><h:outputText value="Área do Conhecimento" /></f:facet>
<h:outputText id="txtArea" value="#{dominio.assunto.area}"/>
</rich:column>
<rich:column id="nivel">
<f:facet name="header"><h:outputText value="Nível Dominio" /></f:facet>
<h:outputText id="txtNivel1" value="#{dominio.nivel}" style="background:red;" rendered="#{dominio.nivel == 0}"/>
<h:outputText id="txtNivel2" value="#{dominio.nivel}" style="background:yellow;" rendered="#{dominio.nivel == 1}"/>
<h:outputText id="txtNivel3" value="#{dominio.nivel}" style="background:violet;" rendered="#{dominio.nivel == 2}"/>
<h:outputText id="txtNivel4" value="#{dominio.nivel}" style="background:green;" rendered="#{dominio.nivel == 3}"/>
<h:outputText id="txtNivel5" value="#{dominio.nivel}" style="background:blue;" rendered="#{dominio.nivel == 4}"/>
</rich:column>
</rich:dataTable>
precisamente nesta coluna
<rich:column id=“nivel”>
<f:facet name=“header”><h:outputText value=“Nível Dominio” /></f:facet>
<h:outputText id=“txtNivel1” value="#{dominio.nivel}" style=“background:red;” rendered="#{dominio.nivel == 0}"/>
<h:outputText id=“txtNivel2” value="#{dominio.nivel}" style=“background:yellow;” rendered="#{dominio.nivel == 1}"/>
<h:outputText id=“txtNivel3” value="#{dominio.nivel}" style=“background:violet;” rendered="#{dominio.nivel == 2}"/>
<h:outputText id=“txtNivel4” value="#{dominio.nivel}" style=“background:green;” rendered="#{dominio.nivel == 3}"/>
<h:outputText id=“txtNivel5” value="#{dominio.nivel}" style=“background:blue;” rendered="#{dominio.nivel == 4}"/>
</rich:column>
eu quero colorir o rich:column e não o h:outputText
Já tentou colocar no style do rich:column ?
Ai essa lógica do rendered você faz na classe, e chama um método pra dizer qual style, mais ou menos assim:
<rich:column style="#{ManterDominio.corDaColuna}">
//Ai na sua classe você cria o método que fazer a validação
public String getCorDaColuna() {
String cor = "";
switch(dominio.nivel){
case 0 : cor = "background:red";
break;
case 1: cor = "background:yellow";
//e por ai vai
}
return cor;
}
Dai basta você testar se eh no style da coluna, se é background msm a propriedade q vc vai usar, nada que um inspecionar elemento (firebug) do mozilla não resolva!
até o chrome tem o inspecionar elemento agora tb.
Abraço!
show de bola vou tentar aqui … se der certo posto a resposta aqui! obrigado
Cara funciono perfeitamente… coloquei uma nova variavel na minha entidade e basto efetuar a verificação ao inserir no DAO.
abraço
[quote=surfzera]Cara funciono perfeitamente… coloquei uma nova variavel na minha entidade e basto efetuar a verificação ao inserir no DAO.
abraço[/quote]
ola, se possível gostaria de saber como fez para passar o valor do nivel no momento que a tabela estava sendo populada,
pois pelo que sei, só se consegue pegar um valor da tabela apos ela esta populada, ai você pega o valor com getRowData
desde já obrigado