[RESOLVIDO]rich:dataTable não renderiza corretamente

5 respostas
D

Opa :smiley:

Criei uma rich:dataTable igual a todas as outras que eu tenho ( e todas estão funcionais ). Tudo que eu fiz foi apontar para outro backingBEan, coloquei os objetos lá e tal.

A questão é que ela não renderiza nada quandoa ponto para o bean correto e se eu apontar para outro bean, ela funciona normal. Eu já tentei copiar e colar o conteúdo do bean funcional e não resolveu.

Alguém sabe me informar se isso pode ser algum bug com nome?

5 Respostas

rsakurai

Ae david,

vc colocou o ManagedBean no facesconfig.xml?

vc pode postar o codigo do dataTable e do managedbean?

D

Coloquei…como eu falei, eu fiz o mesmo esquiema que eu fiz para todas as outras tabelas ( e todas estão funcionais )

<managed-bean>
  <managed-bean-name>usrs</managed-bean-name>
  <managed-bean-class>br.com.pc.jsf.bean.administracao.usrs.Usrs</managed-bean-class>
  <managed-bean-scope>session</managed-bean-scope>
 </managed-bean>
<rich:dataTable align="center" value="#{usrs.tabelaEmpresasModel}"
							var="operador" id="tabelaEmpresa" rows="20"
							binding="#{usrs.htmlDataTable}"
							onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
							onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'" width="750px">
							<rich:column width="16">
								<f:facet name="header">
									<h:outputText value="" />
								</f:facet>
								<h:commandLink action="#{usrs.visualizarDadosCadastrais}"
									id="editarEmpresa">
									<f:setPropertyActionListener target="#{usrs.idEmpresa}"
										value="#{operador.id}" />
									<h:graphicImage value="/imagens/acoes/edit.png" alt="Editar"
										style="text-decoration: none; border-width: 0px; text-decoration: none" />
								</h:commandLink>
							</rich:column>
							<rich:column width="16">
								<f:facet name="header">
									<h:outputText value="" />
								</f:facet>
								<h:commandLink action="#{usrs.visualizarDadosExclusao}"
									id="excluirEmpresa">
									<f:setPropertyActionListener target="#{usrs.idEmpresa}"
										value="#{operador.id}" />
									<h:graphicImage value="/imagens/acoes/delete.png" alt="Editar"
										style="text-decoration: none; border-width: 0px; text-decoration: none" />
								</h:commandLink>
							</rich:column>							
							<rich:column sortBy="#{operador.CNPJ}">
								<f:facet name="header">
									<h:outputText value="CNPJ" />
								</f:facet>
								<h:outputText value="#{operador.CNPJ}" />
							</rich:column>
							<f:facet name="footer">
								<rich:datascroller align="center" for="tabelaEmpresa" maxPages="20"></rich:datascroller>
							</f:facet>
						</rich:dataTable>
public DataModel getTabelaEmpresasModel() {
		List<EmpresaBean> listaEmpresas = new ArrayList<EmpresaBean>(); 
		if(getPeriodoInicial() == null && getPeriodoFinal() == null && (getCNPJ() == null || getCNPJ().equals(""))){
			FacesContext.getCurrentInstance().addMessage("formulario", new FacesMessage("Parâmetros inválidos: é necessário informar os períodos ou um CNPJ válido"));
		}
		if((getPeriodoInicial() == null || getPeriodoFinal() == null) && (getCNPJ() == null || getCNPJ().equals(""))){
			FacesContext.getCurrentInstance().addMessage("formulario", new FacesMessage("Parâmetros inválido: é necessário informar o período inicial E o período final"));
		}
		if(getPeriodoInicial() != null && getPeriodoFinal() !=null){
			listaEmpresas = new OperadorDAO(OperadorBean.class).findByRangeData(getPeriodoInicial(), getPeriodoFinal());
		} else if(getCNPJ() != null && !getCNPJ().equals("")) {
			listaEmpresas = new OperadorDAO(OperadorBean.class).findByCNPJ(getCNPJ());
		}
		if(listaEmpresas.size() > 0) {
			Iterator<EmpresaBean> i = listaEmpresas.iterator();
			Collection<EmpresaBean> resultados = new ArrayList<EmpresaBean>();
			while(i.hasNext()){
				EmpresaBean empresa = (EmpresaBean)i.next();
				if(empresa.getStatus() == 0){
					empresa.setCaminhoImagem("/imagens/monitor/cadastroPendente.png");
					resultados.add(empresa);
				}
				if(empresa.getStatus() == 1){
					empresa.setCaminhoImagem("/imagens/monitor/cadastroLiberado.png");
					resultados.add(empresa);
				}
				if(empresa.getStatus() == 2){
					empresa.setCaminhoImagem("/imagens/monitor/cadastroBloqueado.png");
					resultados.add(empresa);
				}
			}
			tabelaEmpresasModel = new ListDataModel(new ArrayList<EmpresaBean>(resultados));
		} else {
			tabelaEmpresasModel = new ListDataModel(new ArrayList<EmpresaBean>());
		}
		
		return tabelaEmpresasModel;
	}

Se eu alterar de USRS, para MONITOR ( que é outro ManagedBean e tem TODOS os atributos iguais ao USRS ), ele funciona numa boa!

D

Po, só funciona com outro bean e não sei pq :S hauehaue

Vc tem alguma idéia?

rsakurai

Ele mostra pelo menos os headers da tabela??

vc chegou a ver se o método getTabelaEmpresasModel() está retornando um DataModel com valores???

D

O problema estava no binding. Eu tava importando o objeto do Faces e não do RichFaces :slight_smile:

Valeu pela ajuda, amigo!

[]'s

Criado 10 de julho de 2008
Ultima resposta 10 de jul. de 2008
Respostas 5
Participantes 2