2016-07-28 5 views
0

Я использую PF v.5.3.5 и JSF v.2.2.8. Это частая тема в SO. Я заметил, что в документации PF v.5.3.5 есть ошибка, связанная с атрибутом appendTo.Перформансы v.5.3.5 проверка проблемы с отображением диалога вне основного h: форма и внутренняя основная форма отображаются, но она не работает должным образом

первый подход

р-: confirmDialog визуализируется и commandbuttons оказаны, но действия не работает, и сообщение не отображается, если он помещается внутри вложенной ч: формы.

2ст подход

Если я помещаю этот диалог за пределами основной ч: форме она не отображается на всех и если добавить глобальную = «истинный» атрибут.

3st подход

р: confirmDialog оказывается и commandbuttons визуализируются но действия не работает, и сообщения отображается, если вложенная ч: форма удаляется.

<h:form> 
... 
       <p:confirmDialog id="askSessionDialog1" widgetVar="askSessionDialog1" severity="alert" 
           appendTo="@(body)" rendered="#{treeData.askSessionDialogRendered}" visible="#{treeData.askSessionDialogRendered}"> 
        <h:form> 
        <f:facet name="message"> 
         <h:outputText value="#{msg.WEB_ADMIN_PAGES_TREESEGMENT_NOSESSION}" escape="false"/> 
        </f:facet> 

         <p:commandButton value="#{msg.WEB_BUTTONS_OK}" action="#{treeData.save(false, true)}" icon="fa fa-check" 
             update="@(form)" type="button" /> 
         <p:commandButton value="#{msg.WEB_BUTTONS_CANCEL}" action="#{treeData.setAskSessionDialogRendered(false)}" 
             icon="fa fa-close" onclick="PF('askSessionDialog1.hide()')" update="@(form)" type="reset" /> 
        </h:form> 
       </p:confirmDialog> 
... 
</h:form> 

BECKEND ЧАСТЬ

setAskSessionDialogRendered(true); 
RequestContext.getCurrentInstance().update("treeSegmentForm askSessionDialog askTurnOffDialog askSessionDialog1 askTurnOffDialog1"); 

Заранее спасибо за конструктивные сообщения и комментарии.

+0

попробуйте сделать это, чтобы ваша команда нажала кнопку «' –

+0

@YagamiLight Большое спасибо. Я пробовал много аплодисментов, но это хорошая идея! – user321

+0

если это решение, я опубликую решение и пометю как решение. OK –

ответ

0

SOLVED Это лучший подход, который работает для меня сейчас.

<h:form> 
... 
<p:confirmDialog id="askSessionDialog" widgetVar="askSessionDialog" severity="alert" 
           appendTo="@(body)" rendered="#{treeData.askSessionDialogRendered}" visible="#{treeData.askSessionDialogRendered}"> 
        <f:facet name="message"> 
         <h:outputText value="#{msg.WEB_ADMIN_PAGES_TREESEGMENT_NOSESSION}" escape="false"/> 
        </f:facet> 

        <h:form> 
         <p:commandButton value="#{msg.WEB_BUTTONS_OK}" icon="fa fa-check" type="button" accesskey="o"> 
          <p:ajax event="click" listener="#{treeData.save(false, true)}" oncomplete="PF('askSessionDialog').hide()" 
            update="@(form)" /> 
         </p:commandButton> 
         <p:commandButton value="#{msg.WEB_BUTTONS_CANCEL}" icon="fa fa-close" type="reset" accesskey="c"> 
          <p:ajax event="click" listener="#{treeData.setAskSessionDialogRendered(false)}" 
            onsuccess="PF('askSessionDialog').hide()" update="@(form)" /> 
         </p:commandButton> 
        </h:form> 
       </p:confirmDialog> 
... 
</h:form> 

BACKEND

setAskSessionDialogRendered(true); 
RequestContext.getCurrentInstance().update("treeSegmentForm"); 

Пространственное БЛАГОДАРЯ: @YagamiLight Он помог мне начать мое решение.