我目前正在使用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时它不起作用。
当我移出面板并删除渲染属性时,行扩展有效。但我不想在页面加载时显示网格: - (
有什么想法吗?
答案 0 :(得分:0)
我不知道<p:rowExpansion>
是否真的不能与<p:outputPanel>
合作。但由于您不需要<p:outputPanel>
的任何特殊功能,因此您只需使用<h:panelGroup>
即可。 :)
答案 1 :(得分:0)
我能够通过将支持bean注释从@Model更改为@Conversation范围来解决问题,然后在视图呈现时启动对话。