【发布时间】:2015-10-09 09:03:16
【问题描述】:
我的方案是在模式弹出窗口上一一显示列表中的消息。列表将由用户定义的对象组成,该对象具有三个字段,即 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');
}
}
如果我将“popupOne”放在 myXhtml.xhtml 的 a4j:commandButton 的渲染属性中。当我在模态弹出窗口中按预期单击“下一步”按钮时,背景颜色和文本颜色会发生变化,并且消息会出现,但是在单击“下一个按钮”时,消息结束时模态弹出窗口不会关闭。
如果我将“popupTwo”放在 myXhtml.xhtml 的 a4j:commandButton 的渲染属性中。背景颜色和文本颜色在模态弹出窗口中没有变化,但是在单击“下一个按钮”时,消息结束时模态弹出窗口会关闭。
我需要显示带有背景颜色和文本颜色的消息,并且模式弹出窗口应该在消息结束时关闭。
消息按预期顺序发送。
我的实现是错误的还是我需要处理一些事情?
注意:我的 Javascript 函数在第一种情况下不会关闭模式弹出窗口,但在消息结束时会在第二种情况下关闭模式弹出窗口。
【问题讨论】:
-
我读过一些内容,其中 a4j:commandButton 和 oncomplete 在导航时或当 a4j:commandButton 放置在 Ajax 面板内时显示了一些奇怪的行为。任何人都可以通过一些了解它吗?以及 a4j:commandButton 是如何工作的?
标签: jsf jsf-2 richfaces ajax4jsf