我的方案是在模态弹出窗口中逐个显示列表中的消息。 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函数在第一种情况下没有关闭模式弹出,但在消息结束时它会在第二种情况下关闭模式弹出。
答案 0 :(得分:0)
RF 4中重新渲染的正确属性仅为render
。并将ID放入&#34;呈现&#34;属性无济于事。
由于您想要重新渲染整个面板而不仅仅是消息,您可以通过这种方式控制面板的可见性:
<rich:popupPanel show="#{not empty demoBean.messages}" … >