2017-02-08 13 views
1

Я хочу условный оператор в моей командной строке (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 возвращают ложь, если я не могу удалить его и правда, если я могу удалить его.

Мои Диалоги выглядеть следующим образом:

<!-- 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 Диалог с 'Edit' Диалог)

ответ

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

Решает вашу проблему?!? –

Смежные вопросы