我使用的是primefaces 5.0, 我有一个dataTable,最后一列有一个按钮, 我希望bean中的某个方法根据按钮所在的行执行,并且我传递该行的2个值来执行此操作, 所以我有这个代码:
<p:dataTable var="sim" id="idSimTable" value="#{searchSimulationLog.simulations}"
emptyMessage="Il y a aucun simulation avec ce critaire"
widgetVar="simTable"
filteredValue="#{searchSimulationLog.filtredSimulations}"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"
paginator="true" rows="10"
selection="#{searchSimulationLog.selectedSimulation}">
.
.
.
<p:column headerText="Visualiser" width="80">
<div style="text-align: center">
<p:commandButton action="#{searchSimulationLog.generateContratById(sim.simId, sim.productCode)}" value="(#{sim.simId}, #{sim.productCode})" />
</div>
</p:column>
并且bean只有一些普通的getter / setter
到目前为止,一切看起来都不错,就像一个魅力,
直到我过滤!
当我过滤时,让我们说id(因此dataTable中只有一行),按下按钮,我总是得到传递给方法的第一个值(过滤前)(simId和productCode)
具有讽刺意味的是,commandButton的value
属性获得正确的值..但错误的值正在传递。
这里有什么问题!