无法关闭模态弹出窗口

时间:2015-07-20 09:36:25

标签: jsf jsf-2 richfaces ajax4jsf

我的方案是在模态弹出窗口中逐个显示列表中的消息。 List将包含用户定义的对象,它有三个字段,即Messages,BgColor和TextColor。模态弹出将有一个" NEXT"按钮并单击此按钮将在弹出窗口中显示消息,消息将以相应的背景颜色和文本颜色显示。

Main.xhtml

    <rich:popupPanel id="popupOne" modal="true" rendered="#{demoBean.isTrue}">
    <a4j:outputPanel id="popupTwo" >
      <ui:include id="PackStation_OrderNote_Popup" src="/MyXhtml.xhtml">
       <ui:param id="backcolor" name="backcolor" value="#{demoBean.bgColor}"/>
       <ui:param id="textcolor" name="textcolor" value="#{demoBean.textColor}"/>
      </ui:include>
    </a4j:outputPanel>
    </rich:popupPanel>

MyXhtml.xhtml

    <a4j:outputPanel id="panelone" >
    <h:outputText id="errorMsg" name="errorMsg"  class="pop_outputText" value="#{demoBean.messages}" />
                    <a4j:commandButton id ="btnOne" 
                                       action="#{demoBean.continueMsgSequenece}" 
                                       value="next" 
                                       reRender="popupOne"  
                                       oncomplete="closePOPUP('#{demoBean.messages}');">    
                    </a4j:commandButton>
    </a4j:outputPanel>

Javascript功能

    function closePOPUP(msg)
                {
                     if(msg==""){
                      //code to close modal popup
                      UI8Layout.doDialogCloseById('popupOne');
                    }
                }

如果我把&#34; popupOne&#34;在a4j的render属性中:myXhtml.xhtml的commandButton。当我在模态弹出窗口中按预期单击“下一步”按钮时,会出现背景颜色和文本颜色更改和消息,但是,单击&#34;下一步按钮&#34;在消息结束时,模态弹出不会关闭。

如果我把&#34; popupTwo&#34;在a4j的render属性中:myXhtml.xhtml的commandButton。模式弹出时背景颜色和文字颜色不会改变,但是点击&#34;下一个按钮&#34;在消息结束时,模态弹出窗口会被关闭。

我需要显示带有背景颜色和文本颜色的消息,并且当消息结束时,应该关闭模式弹出窗口。

消息按预期顺序发送。

我的实施是错误的还是我必须要处理的事情?

注意:我的Javascript函数在第一种情况下没有关闭模式弹出,但在消息结束时它会在第二种情况下关闭模式弹出。

1 个答案:

答案 0 :(得分:0)

RF 4中重新渲染的正确属性仅为render。并将ID放入&#34;呈现&#34;属性无济于事。

由于您想要重新渲染整个面板而不仅仅是消息,您可以通过这种方式控制面板的可见性:

<rich:popupPanel show="#{not empty demoBean.messages}" … >