我正在使用JSF页面,使用primefaces,并且我遇到了一个问题:每次在数据表中加载新行时,我都需要执行一个操作。
简而言之,例如,每个实体,曾经连续显示的数据,都有一个对象集合,我需要将它们分成两个集合。
那么,任何想法,怎么做?
答案 0 :(得分:2)
没有什么特别需要做的。您可以将列内容的每个定义作为行内容的定义。采取以下示例
<p:dataTable var="car" value="#{dtBasicView.cars}">
<p:column headerText="Id">
<h:outputText id="aText" value="#{car.id}">
<f:event name="preRenderComponent" listener="#{bean.execute}"/>
</h:outputText>
</p:column>
<p:column headerText="Year">
<h:outputText value="#{car.year}" />
</p:column>
<p:column headerText="Brand">
<h:outputText value="#{car.brand}" />
</p:column>
<p:column headerText="Color">
<h:outputText value="#{car.color}" />
</p:column>
</p:dataTable>
每次<f:event/>
呈现给页面时,bean.execute
标记都会执行aText
(读取:每行)。
注意:您应该知道上面的示例将在表格中执行每次行:第一次页面访问,ajax更新和页面刷新
答案 1 :(得分:1)
在@kolossus的帮助下,解决这个问题:
<p:dataTable ...>
<p:column style="display: none;">
<f:event type="preRenderComponent" listener="..."/>
</p:column>
</p:datatable>