p:overlayPanel无法正确呈现子组件

时间:2017-11-20 18:59:27

标签: jsf primefaces

我有好奇的渲染问题。我正在尝试使用按钮附加覆盖面板。当我按下按钮时,会渲染面板。但是,面板中的子组件不是。当面板可见时,我双击按钮,子组件得到渲染。同时,当面板未渲染且我双击时,子组件不会渲染(并且面板不会显示)。

生成的html和计算CSS对于绘制/未绘制的组件都是相同的。 你知道问题出在哪里吗?我错过了一些设置吗?我忽略了什么或者它是一个错误吗?

PrimeFaces模板:

<p:layoutUnit position="center">
<h:form>
    <p:commandButton id="chooseLangBtn" value="Btn" type="button" />
    <p:overlayPanel id="langPanel" for="chooseLangBtn" showCloseIcon="true" dismissable="true">
        <p:selectOneListbox id="langSelect" 
                            rendered="true"
                            value="#{selectOneLanguageView.language}" 
                            converter="languageConverter" 
                            var="t" filter="true" 
                            filterMatchMode="startsWith">
            <f:selectItems value="#{languageService.languages}" 
                           var="lang" 
                           itemLabel="#{lang.name}" 
                           itemValue="#{lang}" />

            <p:column>
                <h:graphicImage width="22px" alt="#{lang.name}" library="main" name="images/flags/var/#{t.code}.svg"/>
            </p:column>

            <p:column>
                <h:outputText value="#{t.name}" />
            </p:column>
        </p:selectOneListbox>
    </p:overlayPanel>
</h:form>

空/渲染图像: enter image description here

1 个答案:

答案 0 :(得分:0)

这是Omega主题中的一个错误。在此处查看当前状态:https://github.com/primefaces/themes/issues/10