<rich:dataTable nao renderiza

0 respostas
francis.junio

Boa tarde galera Guj. Estou com mais um problema e recorro novamente ao forum. Pesquisei e nao encontrei soluçoes. Segue o problema.

Eu tenho uma tela de pesquisa com um botao para buscar no banco os objetos de pesquisa. Ate tudo bem. Quando a pesquisa termina ele popula uns List<> pra mim bunitinho no codigo Java. Mas o problema é que no botao eu mando renderizar o componente do dataTable, mas isso nao acontece. Segue os codigos necessario abaixo.

estou utilizando o a4j:form
ah, ja tentei retirando o reRender=“dataTable” e utilizando o a4j:support.
o botao que aperto para pesquisar o codigo no banco e criar a table no codigo Java.

<a4j:commandLink id="btnPesq" title="Pesquisar"
	action="#{pesquisaGeneric.pesquisar}" reRender="dataTable">
		<h:graphicImage id="imagePesq" url="/images/lupa.png" width="20"
			height="20" style="border:0" />
</a4j:commandLink>

O método para criar e popular a table pra mim.

public void populateDataTable() {
	
		form = new HtmlForm();
		form.setId("formGeneric");
		
		dynamicDataTable = new HtmlDataTable();		
		dynamicDataTable.getRowIndex();
		dynamicDataTable.setValueExpression("value", createValueExpression(
				"#{pesquisaGeneric.objects}", List.class));
		dynamicDataTable.setVar("dynamicItem");
		
		
		for (String collum : cabecalhoTable) {
			HtmlColumn column = new HtmlColumn();
			HtmlOutputText output = new HtmlOutputText();
			
			output.setValueExpression("value", createValueExpression(
					"#{dynamicItem."+collum+"}", String.class));
			column.getChildren().add(output);
			dynamicDataTable.getChildren().add(column);
		}
		
		HtmlColumn column = new HtmlColumn();
		
		HtmlAjaxCommandButton commandButton = new HtmlAjaxCommandButton();
		String value = "CLICK";
		commandButton.setValue(value);
		commandButton.setActionExpression(createMethodExpression("#{pesquisaGeneric.selectedRow}", String.class));
		
		HtmlActionParameter param = new HtmlActionParameter(); 
		param.setValue(createValueExpression("#{dynamicItem}", Object.class));
		commandButton.getChildren().add(param);
			
		dynamicDataTable.getChildren().add(column);
		
		form.getChildren().add(dynamicDataTable);
		
	
	}

Ele esta executando sem erros nenhum, porem nao reinderiza esse componente pra mim.

<rich:dataTable id="dataTable" binding="#{pesquisaGeneric.dynamicDataTable}"/>

Tem um bom tempo que to tentando fazer isso mas sem sucesso algum.
Agradeço pela atençao de todos.

Criado 28 de maio de 2010
Respostas 0
Participantes 1