弹出窗口不在JSF中呈现

时间:2013-11-07 08:26:21

标签: jsf richfaces

我在一个xhtml页面中有一个a4j命令按钮,在另一个页面中有弹出面板。我想在第一页的命令按钮上打开弹出窗口。 命令按钮

auth.xhtml

<a4j:commandButton id="Add" value="Add New" type="submit"
   action="#{controller.add}"
   render=":addPopupForm:addPopupOp">
     <a4j:param value="true" assignTo="#{controller.ind}" ></a4j:param>
</a4j:commandButton>

addPopup.xhtml

<h:form id="addPopupForm">
    <a4j:outputPanel id="addPopupOp" ajaxRendered="true">
       <rich:popupPanel id="addPopup" domElementAttachment="parent" show="true"
          rendered="true" height="600" width="1000" >
            Row is added
       </rich:popupPanel>
   </rich:outputPanel>
</h:form>

2 个答案:

答案 0 :(得分:0)

我不是富有用户的用户,但在一般的JSF中,你不能重新渲染那些首先没有呈现的元素。

因此,在您的情况下,您应该指向addPopupForm,如下所示:

 <a4j:commandButton id="Add" value="Add New" type="submit"
   action="#{controller.add}"
   render=":addPopupForm" >

或者使用一些将始终呈现的包装器a4j:outputPanel包装

另外,请看一下:Can you update an h:outputLabel from a p:ajax listener?

答案 1 :(得分:0)

仅渲染面板并不意味着显示它。您必须将弹出“show”属性附加到属性:

show="#{bean.showPopup}"

在action方法中设置showPopup布尔值(action =“#{controller.add}”),然后执行render =“addPopupForm”