[RESOLVIDO] Primefaces 3.2 c/ colunas dinâmicas

3 respostas
R

Peguei o showcase la do primefaces e fiz meu datatable assim:

<p:dataTable value="#{testesBean.listaTodasPdj}" var="pdj"> <p:columns value="#{testesBean.colunas}" var="coluna" columnIndexVar="index"> <f:facet name="header"> <h:outputText value="#{coluna.header}"/> </f:facet> <h:outputText value="#{pdj[coluna.property]}"/> </p:columns> </p:dataTable>

e no meu bean ta a mesma idéia la do showcase também

private String columnTemplate = "diretoria levantamentos efetivacoes solicitEfetivacoes solicitLevantamentos";

public void criarColunasDinamicas() {  
        String[] columnKeys = columnTemplate.split(" "); 
                     
		colunas.clear();        
          
        for(String columnKey : columnKeys) {  
            String key = columnKey.trim();  
              
            colunas.add(new ColumnModel(columnKey.toUpperCase(), columnKey));  
        }  
    }  

static public class ColumnModel implements Serializable {  
		  
        private String header;  
        private String property;  
  
        public ColumnModel(String header, String property) {  
            this.header = header;  
            this.property = property;  
        }  
  
        public String getHeader() {  
            return header;  
        }  
  
        public String getProperty() {  
            return property;  
        }  
    }

o que acontece, é que eu queria fazer tudo isso dinamicamente, e não ter um header estático no meu bean…

digamos que eu tenha uma classe de Gujeiros, nesta classe eu tenho 3 atributos:
String usuario
String senha
Integerlevel

se eu crio uma list gujeiros, através desta lista, eu consigo saber quais atributos eu tenho dentro da minha classe?
eu queria algum tipo de busca para me retornar as Strings: “usuario senha level”, para ser meu ‘columnTemplate’ dinâmico

3 Respostas

P

Cara pelo que entendi você quer ler os atributos da classe…

Segue um artigo muito bom aque do GUJ

http://www.guj.com.br/articles/10

Espero ter ajudado

R

perfeito! muito obrigado!!

F

Acho que o problema já foi resolvido, mas tenho uma solução mais pratica.

Supondo que eu tenha uma classe Colaborador e dentro dela uma lista Experiencia.

Bem, se quiser exibir a descrição da experiencia no grid, na classe colaborador crio getExperienciaDescrao:

public String getExperienciaDescrao(){
		return this.experiencia.getDescricao();
}

Na propriedade da coluna (columnKey) coloco experienciaDescricao

Uso desta forma e funciona perfeitamente

Criado 27 de abril de 2012
Ultima resposta 24 de ago. de 2012
Respostas 3
Participantes 3