【发布时间】:2014-12-04 18:22:47
【问题描述】:
我正在处理 JSF 页面,使用 primefaces,但我遇到了一个问题:每次在数据表中加载新行时,我都需要执行一个操作。
简而言之,例如,以前连续显示的每个实体,数据,都有一个对象集合,我需要将其分成两个集合。
那么,有什么想法,如何做到这一点?
【问题讨论】:
标签: jsf primefaces datatable
我正在处理 JSF 页面,使用 primefaces,但我遇到了一个问题:每次在数据表中加载新行时,我都需要执行一个操作。
简而言之,例如,以前连续显示的每个实体,数据,都有一个对象集合,我需要将其分成两个集合。
那么,有什么想法,如何做到这一点?
【问题讨论】:
标签: jsf primefaces datatable
在@kolossus 的帮助下,这样解决这个问题:
<p:dataTable ...>
<p:column style="display: none;">
<f:event type="preRenderComponent" listener="..."/>
</p:column>
</p:datatable>
【讨论】:
真的没有什么特别需要做的。您可以将列内容的每个定义作为行内容的定义。举个例子
<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/> 标记将在每次将aText 呈现到页面时执行bean.execute(读取:对于每一行)。
注意:您应该知道,上面的示例将执行 每次 表中的行正在呈现:首次页面访问、ajax 更新和页面刷新
【讨论】: