2017-02-08 2 views
1

Ich möchte eine Bedingungsanweisung in meinem commandbutton (Primefaces 6.0), die ein Dialogfeld anzeigen sollte, wenn meine Java-Methode false oder true zurückgibt. So etwas Ähnliches:primefaces commandbutton bedingte Anweisung

<p:commandButton onclick="(myJavaMethod) ? deleteDialog.show() : confirmDialog.show()"> 
 
    <p:confirm header="Deleting Branch" message="Do you want to delete the Branch?"/> 
 
</p:commandButton>

myJavaMethod false zurück, wenn ich es nicht löschen kann, und dann, wenn ich es löschen.

Meine Dialoge wie folgt aussehen:

<!-- DELETE-DIALOG --> 
 
<p:dialog id="deleteDialog" widgetVar="deleteDialog"> 
 
    <h:form id="deleteDialogForm"> 
 
     <h:panelGrid columns="1" border="0"> 
 
     <p:outputLabel value="Branch could not be deleted"/> 
 
      <p:commandButton icon="ui-icon-close" id="doCloseDialog" oncomplete="PF('deleteDialog').hide()" value="OK" class="btn-confirm"/> 
 
     </h:panelGrid> 
 
    </h:form> 
 
</p:dialog>

(Same Dialog mit 'Bearbeiten' Dialog)

Antwort

1

Was Sie versuchen zu tun ist eine serverseitige Methode aufrufen, mit onclick, und Sie müssen wissen, dass onclick nur eine clientseitige Methode ist, können Sie es verwenden, um eine Javascript-Methode aufzurufen, und die JavaScript-Methode ruft eineauf Dies ist ein einfaches Beispiel, aber ich bin mir ziemlich sicher, dass Sie mehr in anderen Beitrag zu diesem Thema zu finden finden Sie diesen Artikel lesen hoffe, dass geben Sie mehr Informationen darüber How to call JSF backing bean method only when onclick event occurs.

über Ihre Frage können Sie Ihre Methode verwenden, um Ihre bedingt aufrufen Dialog

Lassen Sie dieses Beispiel sehen:

ManagedBean.java

public void myJavaMethod() { 
... 
if(condition){ 
RequestContext context = RequestContext.getCurrentInstance(); 
context.execute("PF('myDialogVar').show();"); 
} else { 
RequestContext context = RequestContext.getCurrentInstance(); 
context.execute("PF('myDialogVarOther').show();");  
}  
...  
} 

und in Ihrer xhtml Seite wird es aussehen wie dieses

myXHTMLpage.xhtml

<p:commandButton actionListener="#{managedBean.myJavaMethod}"> 
... 
</p:commandButton> 

können Sie mehr in diesem Beitrag Calling Primefaces dialog box from Managed Bean function lesen.

Hoffnung, die dir geholfen hat.

+0

löst es Ihr Problem?!? –