我无法让孩子们在p:outputPanel下调用' emailDetail'更新。相反,我设置更新'输出'该组件更新正常。我做了什么明显的错误或者我不能这样更新吗?
<ui:composition template="/WEB-INF/xhtml/templates/basictemplate.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:param name="header" value="small-header"/>
<ui:define name="content">
<div style="margin-top: 50px;"></div>
<h:form id="form">
<p:dataTable id="myDataList" value="#{emailView.inboxEmailHeaders}" var="emailHeader"
selectionMode="single" selection="#{emailView.selectedEmailHeader}"
rowKey="#{emailHeader.emailId}" scrollable="true" scrollRows="" scrollHeight="200">
<p:ajax event="rowSelect"
listener="#{emailView.onRowSelect}"
update=":emailDetail" />
<f:facet name="header">Inbox</f:facet>
<p:column headerText="Id" width="20%">
<h:outputText value="#{emailHeader.emailId}" />
</p:column>
<p:column headerText="Id">
<h:outputText value="#{emailHeader.sender}" />
</p:column>
<p:column headerText="Id">
<h:outputText value="#{emailHeader.subject}" />
</p:column>
</p:dataTable>
</h:form>
<h:outputText id="outside" value="#{emailView.selectedEmailHeader.subject}"/>
<p:outputPanel id="emailDetail" style="text-align:center;">
<p:panelGrid columns="2" rendered="#{not empty emailView.selectedEmailHeader}" columnClasses="label,value">
<f:facet name="header">
<h:outputText value="sit"/>
</f:facet>
<h:outputText value="Id:" />
<h:outputText value="#{emailView.selectedEmailHeader.emailId}" />
<h:outputText value="Recieved" />
<h:outputText value="#{emailView.selectedEmailHeader.recieved.toString}" />
<h:outputText value="Subject" />
<h:outputText value="#{emailView.selectedEmailHeader.subject}" />
</p:panelGrid>
</p:outputPanel>
</ui:define>
</ui:composition>
感谢您的帮助。
Ectomorph。
答案 0 :(得分:-1)
解决。我将<p:ajax>
标记替换为<f:ajax>
和update
替换为render
,因此标记现在看起来像这样......
<f:ajax
event="rowSelect"
listener="#{emailView.onRowSelect}"
render=":emailDetail" />
<p:ajax>
的问题?希望这有助于其他人。
干杯。 外生。