我有一个数据表需要在用户选择行时更新另一个数据表。在选择事件之后正确更新resultSelectedCommunity对象,但第二个数据表的内容未刷新。我检查了浏览器,显然更新类(:formFreq:tableFreq)是正确的。我知道这里发布的是一些相关问题,但我会阅读其中的每一个,但没有一个解决方案适合我。我使用的是Primefaces 5.1和JSF 2.2.9。
<f:metadata>
<f:event type="preRenderComponent" listener="#{results.loadComponents}" ></f:event>
</f:metadata>
...
<h:body>
...
<h:form id="formResults">
<p:dataTable id="tableComm" value="#{results.communitiesList}" var="community" selectionMode="single" selection="#{results.resultSelectedCommunity}" rowKey="#{community.id}">
<f:facet name="header">
Communities
</f:facet>
<p:ajax event="rowSelect" listener="#{results.onResultsCommSelect}" update=":formFreq:tableFreq" />
<p:column>
#{community.toString()} [#{community.size()}]
</p:column>
</p:dataTable>
</h:form>
<h:form id="formFreq">
<p:dataTable id="tableFreq" value="#{results.resultSelectedCommunity.nodes}" var="node" rowIndexVar="index">>
<f:facet name="header">
Frequencies
</f:facet>
<p:column>
<b>#{node}</b>
</p:column>
<p:columns value="#{results.resultSelectedCommunity.columnHeaders}" var="col" columnIndexVar="colIndex">
<f:facet name="header">
#{col}
</f:facet>
<p:outputLabel value="#{results.resultSelectedCommunity.getFrequenceRow(node).get(colIndex)}" styleClass="#{results.resultSelectedCommunity.getColumnColorStatus(node,colIndex)}"/>
</p:columns>
</p:dataTable>
</h:form>
我添加一个印刷品只是为了澄清我的问题。用户应单击左侧项目,表格应更新其内容。这是一个非常简单的任务,我的项目有很多更新例程,但由于某些原因我无法弄清楚,这是一个不起作用。
由于