2012-11-30 5 views
5

comandButton私はconfirmDialogを呼び出しますが、それはユーザーを排除する必要がありますが、そのactionListenerにあるメソッドを決して呼び出しません。Primefaces confirmDialogはactionListenerに何もしません

これはコードです:私は同じコードを置く場合

<p:dialog id="dialogEditar" widgetVar="dialogEditar" header="#{bundle_usuarios.usuarios_titulo_edicion}" resizable="false"> 
    <p:panelGrid id="panelEditar" 
     <p:row> 
      <p:column> 
       <p:commandButton id="btModificar" type="submit" actionListener="#{usuariosMB.modificarUsuario()}" 
          value="#{bundle_general.general_modificar}" update="formEditar" rendered="#{usuariosMB.permisoCtMenu}"/> 
      </p:column> 
      <p:column colspan="7"> 
       <p:commandButton id="btEliminar" type="button" onclick="confirmation.show()" 
           value="#{bundle_general.general_eliminar}"/> 
      </p:column> 
     </p:row> 
    </p:panelGrid> 
    <p:confirmDialog appendToBody="true" id="confirmDialog" message="#{bundle_usuarios.usuarios_confirma}" 
        header="#{bundle_usuarios.usuarios_titulo_confirma_eliminar}" severity="alert" widgetVar="confirmation"> 
     <p:commandButton id="confirm" type="submit" value="#{bundle_usuarios.usuarios_aceptar_eliminar}" 
         update="dialogEditar, formEditar" oncomplete="confirmation.hide()" 
         actionListener="#{usuariosMB.eliminarUsuario()}" rendered="#{usuariosMB.permisoCtMenu}" /> 
     <p:commandButton id="decline" value="#{bundle_usuarios.general_cancelar}" onclick="confirmation.hide()" type="button" /> 
    </p:confirmDialog> 
</p:dialog> 

、confirmDialogせず、それが実行され、問題なくユーザーを削除します。成功して実行されます

コードは次です:

<p:dialog id="dialogEditar" widgetVar="dialogEditar" header="#{bundle_usuarios.usuarios_titulo_edicion}" resizable="false"> 
    <p:panelGrid id="panelEditar" 
     <p:row> 
      <p:column> 
       <p:commandButton id="btModificar" type="submit" actionListener="#{usuariosMB.modificarUsuario()}" 
          value="#{bundle_general.general_modificar}" update="formEditar" rendered="#{usuariosMB.permisoCtMenu}"/> 
      </p:column> 
      <p:column colspan="7"> 
       <p:commandButton id="btEliminar" type="submit" actionListener="#{usuariosMB.eliminarUsuario()}" value="#{bundle_general.general_eliminar}" update="dialogEditar, formEditar" rendered="#{usuariosMB.permisoCtMenu}"/> 
      </p:column> 
     </p:row> 
    </p:panelGrid> 
</p:dialog> 

もう一つ、私はID =「確認」とcommandButon、confirmDialog決して消えるとそれがウィンドウにブロックされたままでクリックしたとき。

詳細が必要な場合は、私に必要なものを教えてください。 お願いします。 ありがとう!通常のボタンに

答えて

4

ダイアログがh:フォームに配置されている場合は、このフォームから実行し、h:フォームをダイアログ内に配置するとよいでしょう。それでもまだwidgetVarでアクセスすることができます

<h:form> 
.... 
</h:form> 

<p:dialog> 

<h:form> 
... 
<p:commandButton /> 
<h:form> 

</p:dialog> 
+0

明日、私のコードを見ることになります。申し訳ありませんが、私は他のことをしなければならず、私はそれを確認できませんでした。ありがとう! – Darkfalk

+1

これは私のエラーです。お友達に感謝し、あまりにも後悔して申し訳ありません。 :S – Darkfalk

+0

@Darkfalk私は助けてうれしい – HRgiger

3

変更コマンドボタン

<p:commandButton id="confirm" type="submit" value="Your Command Text"/> 

は、その後、クリックイベントにダイアログ

<p:commandButton id="confirm" type="button" value="Your Command Text" onclick="dialog.show()"/> 

dialogはあなたのダイアログのwidget varで呼び出します。

次に、確認ダイアログ内のコマンドボタンから削除操作を実行できます。

この変更を既に行っているようです。あなたはまだ同じ問題を抱えていますか?

+0

私は試してみましたが、私は同じ結果があります。 – Darkfalk

+0

その後、HRgigerの回答としてフォームが欠落している必要があります。あなたはフォームの中にフォームを入れないでください。 –