2017-01-19 3 views
1

Я показать Primefaces Диалог с помощью диалоговой рамки, таким образом:primefaces диалога рамки: закрыть окно «OnClick»

RequestContext.getCurrentInstance().openDialog("myDialog", options, params); 

На странице myDialog.xhtml У меня есть сообщение и две кнопки: ДА или НЕТ , Я хотел бы закрыть диалог Pf с событием «onclick», есть ли способ сделать это?

Я не могу статически определить диалоговое окно с помощью р: диалог и чем вблизи его с помощью PF('widgetVarName').hide();

ответ

2

Как правило, вы можете что-то вроде этого:

<p:commandButton action="#{someBean.closeDialog('yes')}" process="@form" update="@form" 
    icon="#{icons.yes}" value="#{bundle.yes}" /> 

<p:commandButton action="#{someBean.closeDialog('no')}" process="@form" update="@form" 
    icon="#{icons.no}" value="#{bundle.no}" /> 


public void closeDialog(String choice) 
{ 
    RequestContext requestContext = RequestContext.getCurrentInstance(); 

    Object someData = executeChoice(choice); 

    requestContext.closeDialog(someData); 
} 

В противном случае, если вам действительно нужно, чтобы закрыть диалоговое окно на onclick (звучит немного странно ...), вы можете использовать:

<p:remoteCommand name="closeDialog" action="#{someBean.closeDialog}" process="@this" /> 

<p:commandButton type="button" onclick="closeDialog()" icon="#{icons.close}" 
    value="#{bundle.close}" /> 


public void closeDialog() 
{ 
    RequestContext requestContext = RequestContext.getCurrentInstance(); 

    requestContext.closeDialog(null); 
} 

Наконец, если вам нужен pure javascript решение, вы можете:

<p:commandButton type="button" 
    onclick="PrimeFaces.closeDialog({pfdlgcid:'#{param.pfdlgcid}'})" 
    icon="#{icons.close}" value="#{bundle.close}" /> 
Смежные вопросы