[RESOLVIDO] Botão Limpar no Popup do Richfaces não funciona

9 respostas
NataliaOliveira

Tenho um filtro de busca num popup que funciona corretamente para buscar. Porém, o botão limpar limpa os campos no bean, mas não limpa na tela.
O mais estranho é que o ajax limpa a lista da tabela, mas não limpa o conteúdo dos inputText. Parece que ele não faz o render dos input, mas eles estão ali.

Segue o código do botão:

<h:commandButton value="Limpar" action="#{facesBean.limpar()}" >
	<f:ajax execute="@form" render="matricula nome resultado-usuarios"/>
</h:commandButton>

Tem algo errado?

Agradeço desde já qualquer ajuda.

9 Respostas

Hebert_Coelho

render=“matricula nome resultado-usuarios”
Esse são os campos que deveriam estar limpos mas não estão?

Rodrigo_Sasaki

Parece para mim que sua árvore de componentes está suja.

Se você ler um pouco sobre a ordem que o JSF segue para mostrar os dados na tela, vai entender que pode acontecer de os campos não ficarem vazios, mesmo limpando os valores que estão associados a eles via EL.

tem um post muito bom sobre isso, que possui até uma solução, feito pelo Rafael Ponte.

Limpando a árvore de componentes

NataliaOliveira

@jakefrog
São estes os campos sim. O resultado-usuarios tá limpando e renderizando. Os outros dois que não estão.

@digaoneves
Obrigada, vou dar uma lida e ver se me ajuda.

NataliaOliveira

Implementei o método cleanSubmitedValues e chamei ele, mas não limpou. Continuo com o mesmo problema. :frowning:

Hebert_Coelho

Troca de action para actionListener

Dantch

NataliaOliveira:
Tenho um filtro de busca num popup que funciona corretamente para buscar. Porém, o botão limpar limpa os campos no bean, mas não limpa na tela.
O mais estranho é que o ajax limpa a lista da tabela, mas não limpa o conteúdo dos inputText. Parece que ele não faz o render dos input, mas eles estão ali.

Segue o código do botão:

<h:commandButton value="Limpar" action="#{facesBean.limpar()}" >
	<f:ajax execute="@form" render="matricula nome resultado-usuarios"/>
</h:commandButton>

Tem algo errado?

Agradeço desde já qualquer ajuda.

@NataliaOliveira, fiz um teste em aqui renderizando alguns <h:inputText> quando não usei virgula para separar os “id(s)” ele atende apenas o ultimo “id” listado no render, as vezes nem efetua o render. O porque disso acontecer eu não sei pois na minha concepção o richFaces é meio confuso. Por isso parti para o primeFaces, que inclusive está de cara nova… http://www.guj.com.br/java/280116-cagatay-lanca-versao-primefaces-34rc1

Faz um teste separando os “id(s)” com virgula …

Se não der certo grita ae …

NataliaOliveira

@jakefrog

Troquei pra actionListener e nada também.

@Dantch

Tentei colocar vírgula e deu erro. Nem renderizou a página que contém o popup.

<f:ajax> contains an unknown id 'matricula,' - cannot locate it in the context of the component j_idt120
NataliaOliveira

Consegui!

Coloquei meus inputs dentro de um a4j:outputPanel e troquei o botão para a4j:commandButton.

<a4j:outputPanel id="filtro-busca">
			<fieldset>
				<legend class="secao">Filtro de Busca de Usuários</legend>
				<h:panelGrid styleClass="formulario" columns="1" cellspacing="0" columnClasses="item">
					<h:panelGroup>
						<h:outputLabel styleClass="rotulo-form" value="Matrícula" for="matricula" />
						<br />
						<h:inputText id="matricula" value="#{facesBean.filtro.matricula}" styleClass="campo-texto" maxlength="8"/>
					</h:panelGroup>
					<h:panelGroup>
						<h:outputLabel styleClass="rotulo-form" value="Nome" for="nome" />
						<br />
						<h:inputText id="nome" value="#{facesBean.filtro.nome}" styleClass="campo-texto" />
					</h:panelGroup>
				</h:panelGrid>
			</fieldset>
		</a4j:outputPanel>

			<div id="barra-botoes">
				<h:commandButton value="Buscar" action="#{facesBean.buscar()}">
					<f:ajax execute="@form" render="resultado-usuarios" />
				</h:commandButton>
				<a4j:commandButton value="Limpar" action="#{facesBean.limparFiltro()}" >
					<f:ajax execute="@form" render="filtro-busca resultado-usuarios"/>
				</a4j:commandButton> 
			</div>
Dantch

Boa @NataliaOliveira

Você respondeu, mas eu nem tive tempo de verificar … mas precisando estamos aí …

Sucesso!!!

Criado 20 de agosto de 2012
Ultima resposta 21 de ago. de 2012
Respostas 9
Participantes 4