我正在使用Prime Faces 3.2的JSF2.0。我有一个数据表,其中一列有两个命令按钮。第二个命令按钮基于条件呈现。一切都运行良好,直到数据表被过滤。一旦过滤,第一个没有呈现属性的命令按钮会调用我的actionListener而没有任何问题,而第二个带有呈现属性的命令按钮则不会。
PS:我使用f的原因:setPropertyActionListener的param intead是因为primefaces数据表中的一个错误在过滤时传递了错误行的id。
这是我的代码,对这个问题的任何见解都会很棒。
<p:column headerText="Column1" filterMatchMode="contains" filterBy="#{item.name}" sortBy="#{item.name}">
<h:outputText value="#{item.name}" style="float:left" />
<span class="inlineButton">
<p:commandButton id="selectBtn" icon="select"
oncomplete="dialog1.show()" actionListener="#{controller.setItem}">
<f:param name="itemId" value="#{item.id}"/>
</p:commandButton>
<p:commandButton id="delBtn" icon="delete"
actionListener="#{controller.setItem}"
oncomplete="delConfirm.show()"
rendered="#{not empty item.id}">
<f:param name="itemId" value="#{item.id}"/>
</p:commandButton>
</span>
</p:column>