일부 commandButton이 포함 된 p : 대화 상자를 사용하고 싶지만 명령 단추에서 내 bean을 호출 할 수없고 이유를 모르겠습니다.p : p : dialog의 commandButton이 작동하지 않습니다.
xhtml 페이지에는 두 개의 양식이 있습니다. 첫 번째 양식에는 패널, 패널 그리드, 버튼 등과 같은 항목이 포함되어 있습니다. 두 번째 양식에는 대화 상자 만 포함되어 있습니다.
내 beanHandler (beanHandler)는 ViewAccessScoped입니다. 이 XHTML 페이지 모든 단지 내 페이지를하고있다 : 나는 위의 페이지처럼 사용하는 경우 패널은
<?xml version="1.0" encoding="UTF-8"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:m="http://java.sun.com/jsf/composite/components/mmnet">
<h:form id="activityForm">
<p:panel >
...
...
<f:facet name="footer">
...
<p:commandButton id="readyButton"
action="#{beanHandler.toggleStatus()}"
rendered="#{beanHandler.ready}"
value="#{labels.erledigt}"
icon="ui-icon-check"
update="@form :dialogForm"
onclick="dlg.show()">
<p:tooltip for="readyButton" style="width:300px;">
<h:outputText value="#{messages.adviceWfEventActivityFinish}" />
</p:tooltip>
</p:commandButton>
</f:facet>
</p:panel>
</h:form>
<h:form id="dialogForm">
<p:outputPanel id="justAPanel">
<p:dialog header="Ticket schließen?" widgetVar="dlg" resizable="false" appendToBody="true" rendered="#{beanHandler.lastActivity}" id="dlg">
<h:panelGrid columns="2" style="margin-bottom:10px">
<h:outputLabel value="Soll das Ticket geschlossen werden?" />
<p:spacer />
<p:commandButton id="yesButton"
value="#{labels.ja}" update=":workflowContentPanel"
onclick="dlg.hide()"
action="#{beanHandler.closeTicket()}" process="@form"/>
<p:commandButton id="noButton" value="#{labels.nein}" update=":workflowContentPanel" onclick="dlg.hide()"/>
</h:panelGrid>
</p:dialog>
</p:outputPanel>
</h:form>
</ui:composition>
작동하지되면, P : 패널이 buttonClick에 표시되지 않습니다. 내가
<p:dialog header="Ticket schließen?" widgetVar="dlg" resizable="false" appendToBody="true" rendered="true" id="dlg">
에 코드
<p:dialog header="Ticket schließen?" widgetVar="dlg" resizable="false" appendToBody="true" rendered="#{beanHandler.lastActivity}" id="dlg">
의이 부분을 변경하면 대화 상자가 표시됩니다 (true로 렌더링 속성을 변경),하지만 내 버튼 (불가능 빈을 호출) 작동하지 않습니다. 왜 이러한 일이 발생하는지 잘 모른다면.
누구나 아이디어가 있으십니까? 속성 appendToBody
와
감사
중첩 된 양식을 사용해야합니까? – LStrike
물론 아닙니다! Primeface는 대화 상자를 페이지 본문에 추가합니다 (예 : Firebug를 통해 생성 된 HTML을 확인하십시오). 그래서 그것은 form-tag 밖에 있습니다. 가장 좋은 해결책은'appendToBody' 속성을 건너 뛰고 수동으로'p : dialog'를 form-tag의 직접적인 자식으로 설정하는 것입니다. 또 다른 해결책은 대화 상자 자체에 또 다른'
@LStrike 어떤 성공? –