2017-02-08 45 views
1

我想要一个条件语句在我的commandbutton(Primefaces 6.0)中,如果我的java方法返回false或true,它应该显示一个对话框。类似的东西:primefaces commandbutton条件语句

<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,如果我不能删除它和真正的,如果我可以将其删除。

我的对话框如下图所示:

<!-- 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>

(同一个对话框与“编辑”对话框)

回答

1

你正在尝试做的是调用服务器端方法有onclick,你必须知道onclick 只是一个客户端方法,你可以用它来调用一个javascript方法,而javascript方法将调用一个p:remoteCommand 这是一个简单的例子,但我很确定你可以在其他帖子中找到更多关于这个主题的文章阅读这篇文章希望 会给出更多关于它的信息How to call JSF backing bean method only when onclick event occurs

关于你的问题,你可以用你的方法来有条件地调用你的对话框

让我们看看这个例子:

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();");  
}  
...  
} 

,并在您的XHTML页面会看起来像这样

myXHTMLpage.xhtml

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

你可以阅读更多的在这个岗位Calling Primefaces dialog box from Managed Bean function

希望能帮到你。

+0

它解决你的问题吗?!? –