Primefaces的p:rowExpansion在p:outputPanel中不起作用?

时间:2014-06-02 13:54:05

标签: jsf jsf-2 primefaces

我目前正在使用primeface的p:rowExpansion,并注意到它在p:outputPanel中无法正常工作。这是一个示例代码:

<p:commandButton action="#{xxxSearchBean.search()}" value="Search" update="messages resultPanel" styleClass="button"></p:commandButton>

<p:outputPanel id="resultPanel">
    <p:panel rendered="#{xxxSearchBean.hasResults()}">
        <ui:include src="xxxSearchView.xhtml">
            <ui:param name="searchBean" value="#{xxxSearchBean}" />
        </ui:include>
    </p:panel>
</p:outputPanel>

包含的观点:

<p:accordionPanel activeIndex="0">
    <p:tab title="Criminal Results">
        <p:dataTable var="c" value="#{searchBean.results}">
            <p:column style="width:16px">
                <p:rowToggler />
            </p:column>
            <p:column headerText="Last Name">
                <h:outputText value="#{c.lastname}" />
            </p:column>
            <p:column headerText="First Name">
                <h:outputText value="#{c.firstname}" />
            </p:column>

            <p:rowExpansion>
                <p:panelGrid columns="4"
                    columnClasses="form-field-label,value,form-field-label,value">
                    <h:outputText value="Label" />
                    <h:outputText value="Value" />
                </p:panelGrid>
            </p:rowExpansion>
        </p:dataTable>
    </p:tab>
</p:accordionPanel>

上述代码在有结果时成功显示结果网格,但是当我单击rowExpansion时它不起作用。

当我移出面板并删除渲染属性时,行扩展有效。但我不想在页面加载时显示网格: - (

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我不知道<p:rowExpansion>是否真的不能与<p:outputPanel>合作。但由于您不需要<p:outputPanel>的任何特殊功能,因此您只需使用<h:panelGroup>即可。 :)

答案 1 :(得分:0)

我能够通过将支持bean注释从@Model更改为@Conversation范围来解决问题,然后在视图呈现时启动对话。