【发布时间】:2020-12-12 23:17:43
【问题描述】:
我目前正在实现一个在素数面孔中具有删除功能的数据表。在删除之前,用户在对话框中确认他的决定:如果它是“是”,那么应该删除“当前”行(也就是用户单击删除按钮所在的行)。目前,无论触发了哪个行删除操作,最后一行都会被删除:
<p:dataTable var="var" value="#{bean.list}">
//some columns
//relevant column
<p:column id="id">
<p:commandButton id="deleteButton" onclick="PF('deleteDialog').show();" />
<p:confirmDialog id="deleteDialogId" widgetVar="deleteDialog" appendTo="@form">
<p:commandButton id="confirm" onclick="PF('deleteDialog').hide();"
actionListener="#{bean.deleteRowAction(var)}" />
<p:commandButton id="cancel" onclick="PF('deleteDialog').hide();" />
</p:confirmDialog>
</p:column>
</p:dataTable>
confirm 按钮的 actionListener 似乎无法通过仅获取 var 作为输入来访问当前行。如果我摆脱对话框并在deleteButton 上触发动作监听器,一切都会按预期工作:
// works, but no dialog
<p:dataTable var="var" value="#{bean.list}">
//some columns
//relevant column
<p:column id="id">
<p:commandButton id="deleteButton" actionListener="#{bean.deleteRowAction(var)}" />
</p:column>
</p:dataTable>
我找到了How can I pass selected row to commandLink inside dataTable or ui:repeat? 和JSF Delete entity on DataTable with p:dialog,但不幸的是它没有帮助。
有没有办法以某种方式将“当前”表条目传递到外部按钮上?
【问题讨论】:
标签: primefaces