a4j:commandLink não executa o reRender na rich:dataTable

2 respostas
F

Boa noite pessoal primeramente quero dizer que antes desse problema acontecer os commandLinks não funcionavam na tabela, resolvi com o t:saveState colocando o meu bean que é um managed bean com escopo request.
Agora o botão que exclui não executa o reRender na tabela, ele executa o método mas o reRender não o que poderia ser?

Aqui segue o código jsp
<f:view>			
			<h:form>
				<a4j:outputPanel id="tabela">
					<t:saveState value="#{ingConControle}"/>
					<h:panelGrid columns="2">
						<h:outputText value="Consultar ingrediente por:"/>
						<h:selectOneListbox id="slcconsulta" size="1" 
							value="#{ingConControle.selecionaConsulta}">
							<f:selectItems value="#{ingConControle.tipoConsultas}"/>							
						</h:selectOneListbox>
						<h:inputText id="con" value="#{ingConControle.inputTextConsulta}"/>
						<h:commandButton id="btcon" value="Consultar" 
							action="#{ingConControle.consultaIngrediente}"/>
					</h:panelGrid>				
													
					<rich:dataTable id="tabelaing" rows="10" var="ing"	
						rendered="#{!empty ingConControle.tabelaIngrediente}"
						value="#{ingConControle.tabelaIngrediente}">
						<f:facet name="header">
							<h:outputText value="Ingredientes"/>
						</f:facet>
						<h:column>
							<f:facet name="header">
								<h:outputText value="Código"/>
							</f:facet>
							<h:outputText value="#{ing.ingCodigo}"/>
						</h:column>
						
						<h:column>
							<f:facet name="header">
								<h:outputText value="Ingrediente"/>
							</f:facet>
							<h:outputText value="#{ing.ingNome}"/>
						</h:column>
						
						<h:column>
							<f:facet name="header">
								<h:outputText value="PB"/>
							</f:facet>
							<h:outputText value="#{ing.ingPb}"/>
						</h:column>
						
						<h:column>
							<f:facet name="header">
								<h:outputText value="NDT"/>
							</f:facet>
							<h:outputText value="#{ing.ingNdt}"/>
						</h:column>
						
						<h:column>
							<f:facet name="header">
								<h:outputText value="EM"/>
							</f:facet>
							<h:outputText value="#{ing.ingEm}"/>
						</h:column>
						
						<h:column>
							<f:facet name="header">
								<h:outputText value="Quantidade Kg"/>
							</f:facet>
							<h:outputText value="#{ing.ingQtd}"/>
						</h:column>
						
						<h:column>
							<f:facet name="header">
								<h:outputText value="Alterar"/>
							</f:facet>
							<h:commandLink value="Alterar" 
								action="#{ingConControle.alteraIngrediente}"/>
						</h:column>
						
						<h:column>
							<f:facet name="header">
								<h:outputText value="Excluir"/>
							</f:facet>
							<a4j:commandLink value="Excluir" 
								action="#{ingConControle.excluir}" reRender="tabela"/>								
							
						</h:column>
					</rich:dataTable>
					<rich:datascroller for="tabelaing" maxPages="5" 
						rendered="#{!empty ingConControle.tabelaIngrediente}"/>
				</a4j:outputPanel>
			</h:form>
		</f:view>
Aqui segue o método no managed bean:
public String excluir(){
		ing = 
			(Ingrediente) FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("ing");
		if(ingbean.excluiIngrediente(ing)){			
			this.msgAviso = "Ingrediente excluido com sucesso!";
		}
		return null;
	}

Preciso urgentemente de uma resposta para isso!
Abraços

2 Respostas

peerless

frazzato:
Boa noite pessoal primeramente quero dizer que antes desse problema acontecer os commandLinks não funcionavam na tabela, resolvi com o t:saveState colocando o meu bean que é um managed bean com escopo request.
Agora o botão que exclui não executa o reRender na tabela, ele executa o método mas o reRender não o que poderia ser?

Aqui segue o código jsp

...

Aqui segue o método no managed bean:

public String excluir(){ ing = (Ingrediente) FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("ing"); if(ingbean.excluiIngrediente(ing)){ this.msgAviso = "Ingrediente excluido com sucesso!"; } return null; }

Preciso urgentemente de uma resposta para isso!
Abraços

Tente dar um rerender só na tabela para testar: reRender=“tabelaing”

F

não funciona amigo, fiz o que você disse mas não deu certo, ele exclui o valor mas não da reRender!

Criado 2 de abril de 2008
Ultima resposta 3 de abr. de 2008
Respostas 2
Participantes 2