2017-04-04 20 views
0

Primefaceのダイアログを開いたままにしたいので問題がありますが、登録ボタンを押すたびに閉じます。オープンしておく必要がありますPrimefaceのダイアログ

これは、データが正常に読み込まれたときに大きな問題になることはありません。それらはデータベースに記録され、操作は終了します。

私の意図は、別のボタンで閉じることを決定するまで、ダイアログを画面上に残すことです。これは、バリデーションがエラーをスローすると、データを修正するか、登録しないことを決定するまで、バリデーションが維持されるためです。何がやりたいことは、あなたが代わりにupdate="nuevoCombustible"を使用する必要があり、ダイアログ内のフォームフィールドを更新している場合

  <h:form id="frmAltaCombustible"> 
       <p:dialog header="Nuevo Combustible" widgetVar="dialogoNuevoCombustible" resizable="false" width="900" showEffect="explode" hideEffect="explode" > 
        <p:panelGrid id="nuevoCombustible" columns="3"> 
         <p:outputLabel value="Identificador de Combustible:" for="txtIdentificador"/> 
         <p:inputText id="txtIdentificador" label="Identificador" value="#{mbCombustibles.combustible.idcombustible}"> 
          <f:validator validatorId="validadorVacio"/> 
         </p:inputText> 
         <p:message for="txtIdentificador"/> 
         <p:outputLabel value="Nombre de combustible:" for="txtDescripcion"/> 
         <p:inputText id="txtDescripcion" label="Nombre" value="#{mbCombustibles.combustible.descripcion}"> 
          <f:validator validatorId="validadorVacio"/> 
         </p:inputText> 
         <p:message for="txtDescripcion"/> 
         <p:commandButton value="Registrar Combustible" actionListener="#{mbCombustibles.registrar()}" update=":frmAltaCombustible,:frmListaCombustibles"/> 
        </p:panelGrid> 
       </p:dialog> 
      </h:form> 
+0

次に、フォームが含まれている完全なフォームを更新しないでください。 – Kukeltje

答えて

2

ダイアログコードを添付します。

CSS属性をjavascriptで変更してダイアログをレンダリングすると、コンポーネントが再レンダリングされたときに効果的に値が失われることになります。

+0

これは完璧に機能します。 しかし、私はDialogがデータテーブルにあるボタンからそのインスタンスをインスタンス化したことを忘れてしまい、この方法では更新しません。 忘れて申し訳ありません。 –

関連する問題