我正在使用 primefaces 和 JSF 2.0。我有一个数据表,其中包含一个如下所示的删除列。
<p:column id="Delete" headerText="Delete">
<p:commandButton icon="delete" onclick="deleteConfirmation.show()" style="align:center">
<f:setPropertyActionListener value="#{item}" target="#{controller.selectedItem}" /> </p:commandButton>
</p:column>
//删除确认对话框
<p:confirmDialog id="deleteConfirmDialog" message="Are you sure you want to delete?"
header="Delete" severity="alert"
widgetVar="deleteConfirmation">
<p:commandButton id="confirm" value="Yes"
update=":myList" oncomplete="deleteConfirmation.hide()"
actionListener="#{controller.delete}" />
<p:commandButton id="cancel" value="No"
onclick="deleteConfirmation.hide()" type="button" />
</p:confirmDialog>
一切都很好,除非我在数据表上进行过滤。在我过滤并单击删除后, selectedItem 方法获取数据表中的前一行(不是过滤结果的一部分)而不是当前行。
不过滤就不存在这个问题。我正在为我的控制器使用 ViewScoped 范围。
关于为什么会发生这种情况的任何想法?这似乎是数据表应该支持的基本事情,所以我假设我在这里做错了。谢谢你的帮助