Atualização datatable JSF + SEAM

2 respostas
T

Eu to com um projeto onde em uma ele lista os produtos de acordo com a pesquisa, porém, quando esse produto é atualizado, o datatable só mostra a atualização depois q eu saio da conversação e entro novamente. Como eu posso fazer para meu datatable reenderizar a consulta sem ter que sair da conversação??

Segue o código:

Aqui eu monto a tabela a ser apresentada

@DataModel
	private List<Produto> produtos;

	public void find(){
		page = 0;
		consultaProdutos();
	}

	public void nextPage(){
		page++;
		consultaProdutos();
	}

	private void consultaProdutos(){
		produtos = em.createQuery("select p from Produto p where lower(p.codigo) like #{pattern} or lower(p.modelo) like #{pattern} or lower(p.marca) like #{pattern}")
		.setMaxResults(pageSize)
		.setFirstResult( page * pageSize )
		.getResultList();
	}

	@Factory(value="pattern", scope=ScopeType.EVENT)
	public String getSearchPattern(){
		return searchString==null ?
				"%" : '%' + searchString.toLowerCase().replace('*', '%') + '%';
	}

Aqui o código da página

<h:inputText id="searchCodigo" value="#{consultas.searchString}" style="width: 165px;">
						<a:support id="onkeyup" event="onkeyup" actionListener="#{consultas.find}" reRender="searchResults" />
					</h:inputText> &#160;
					<a:commandButton id="findProducts" value="Find Product"	action="#{consultas.find}" reRender="searchResults" />

          <a:outputPanel id="searchResults">
				<div class="section">
					<h:outputText id="NoProductsFoundMessage" value="No Products Found" rendered="#{produtos != null and produtos.rowCount==0}"/>
					<h:dataTable id="produtos" value="#{produtos}" var="pro" rendered="#{produtos.rowCount>0}">
					<h:column id="column1">
						<f:facet id="ProductCode" name="header">Code</f:facet>
						#{pro.codigo}
					</h:column>
					<h:column id="column2">
						<f:facet id="ProductModel" name="header">Model</f:facet>
						#{pro.modelo}
					</h:column>
					<h:column id="column3">
						<f:facet id="ProductBrand" name="header">Brand</f:facet>
						#{pro.marca}
					</h:column>
					<h:column id="column4">
						<f:facet id="ProductSize" name="header">Size</f:facet>
						#{pro.tamanho}
					</h:column>
					<h:column id="column5">
						<f:facet id="ProductLocation" name="header">Location</f:facet>
						#{pro.localidade}
					</h:column>
				</h:dataTable> 
					<s:link id="MoreResultsLink" value="More results" action="#{consultas.nextPage}" rendered="#{consultas.nextPageAvailable}" />
				</div>
			</a:outputPanel>

Se alguém puder ajudar eu agradeço muito

2 Respostas

T

Ninguém???

T

Esqueci de responder…Resolvido

Criado 22 de outubro de 2010
Ultima resposta 27 de out. de 2010
Respostas 2
Participantes 1