私は、primefaces tabPanelに3つのタブを持つポップアップを持っています。中間には "composicao"と呼ばれるテーブルがあり、このタブは最初のタブにあるチェックボックスをマークするとレンダリングされます。 テーブルにはたくさんの入力、選択、チェックボックスがあり、ユーザーは任意の順序で入力できます。したがって、すべてのフィールドを入力してチェックボックスをオンにすると、すべてのフィールドがクリアされ、チェックボックスがtabViewを更新します。私はいくつかのフィールドの即時属性をtrueに設定し、p:ajaxプロセス属性を@allに設定しましたが、この方法では何も起こりません。更新時にフィールドが消去されます。tabview
これは、タブパネルのコードです:
<h:panelGroup id="abasCadastroProduto">
<p:tabView>
<p:tab title="base">
<ui:include src="../../tabs/abaEdicaoBaseProduto.xhtml"/>
</p:tab>
<p:tab id="abaComposicao" title="composicao" rendered="#{produto.composto}">
<ui:include src="../../tabs/abaEdicaoComposicaoProduto.xhtml"/>
</p:tab>
<p:tab
title="tributacao">
<ui:include src="../../tabs/abaEdicaoTributacaoProduto.xhtml"/>
</p:tab>
</p:tabView>
</h:panelGroup>
は、これが最初のタブのコードの一部です:
<h:panelGroup layout="block">
<p:fieldset legend="geral">
<h:panelGroup layout="block">
<h:selectBooleanCheckbox id="produtoAtivoCheck"
value="#{produto.ativo}"/>
<h:outputLabel value="ativo" for="produtoAtivoCheck"/>
<h:selectBooleanCheckbox id="produtoMovimentoCheck"
value="#{produto.movimentaEstoque}"/>
<h:outputLabel value="movimento" for="produtoMovimentoCheck"/>
<!-- THIS IS THE CHECKBOX -->
<h:selectBooleanCheckbox id="produtoCompostoCheck"
value="#{produto.composto}">
<p:ajax event="change" update="abasCadastroProduto" process="@all"/>
</h:selectBooleanCheckbox>
<h:outputLabel value="composto" for="produtoCompostoCheck" />
</h:panelGroup>
.......
<h:panelGroup layout="block">
<h:outputLabel value="descricao"/>
<p:inputText value="#{produto.descricao}" required="true" immediate="true"
requiredMessage="obrigatorio"/>
<h:outputLabel value="complemento"/>
<p:inputText value="#{produto.descricaoComplementar}"/>
</h:panelGroup>
......
</p:fieldset>
</h:panelGroup>
は、私は、この問題を解決することができる方法はあります? 私はユーザーこれに代えて、彼らが埋めるためにいくつかの時間を費やすフィールド、チェックボックスをクリックしたときにクリアされて...
おそらく、フォームのどこかで検証エラーが発生しているため、値が更新されていない可能性がありますか?ネストされたフォームの状況がありますか?あなたのフォームは、そのIDを子要素に先付けていますか?おそらくpanelGroup idは実際には 'form:abasCadastroProduto'なので、実際には更新されていませんか?すべてのコードを見なければわかりません。 –
'styleClass'などの不要なコードをすべて削除できますか?また、問題の原因となったチェックボックスを強調表示できますか? –
はいフォームはIDをprependingしています... しかし、この問題は検証になる可能性があります。このフォームには多くの必須フィールドがありますが、必要なフィールドメッセージは受け取りませんでした。 – brevleq