带有确认框的datagrid内的Primefaces 5 Delete按钮单击确认框的yes将参数值传递给bean
我们使用的是PrimeFaces5 我们有一个用于搜索结果的数据网格。在datagrid中,每行有一个删除按钮。单击delete按钮后,当用户单击确认对话框的yes按钮时,将显示一个确认框,然后应调用bean的deleteUser方法,并应删除参数id为“testUserId”的用户。问题是发送到bean的“testUserId”的值始终是datagrid最后一行的userId的值。如何将单击delete按钮的当前行的“testUserId”值传递给bean方法? 下面是代码片段 Xhtml:-带有确认框的datagrid内的Primefaces 5 Delete按钮单击确认框的yes将参数值传递给bean,primefaces,Primefaces,我们使用的是PrimeFaces5 我们有一个用于搜索结果的数据网格。在datagrid中,每行有一个删除按钮。单击delete按钮后,当用户单击确认对话框的yes按钮时,将显示一个确认框,然后应调用bean的deleteUser方法,并应删除参数id为“testUserId”的用户。问题是发送到bean的“testUserId”的值始终是datagrid最后一行的userId的值。如何将单击delete按钮的当前行的“testUserId”值传递给bean方法? 下面是代码片段 Xhtml:-
<p:commandButton action="#{bean.deleteUser}" value="Delete"
ajax="false" onclick="PF('confirmation').show()" type="button">
</p:commandButton>
<p:confirmDialog
message="Are you sure about deleting the user?"
header="Initiating user deletion" severity="alert"
widgetVar="confirmation" appendTo="">
<p:commandButton value="Yes Sure" ajax="false" onclick="resetSearchForm()"
oncomplete="PF('confirmation').hide()" action="#{bean.deleteUser}" >
<f:param name="testUserId" value="#{user.id}"></f:param>
</p:commandButton>
<p:commandButton value="Not Yet" onclick="PF('confirmation').hide()"
type="button" />
</p:confirmDialog>
使用属性操作侦听器:
<p:commandButton value="Delete" ajax="false" onclick="PF('confirmation').show()" type="button">
<f:setPropertyActionListener value="#{tableRowVar}" target="#{bean.selectedUser}" />
</p:commandButton>
其中tableRowVar是dataTable中变量的名称,bean.selectedUser是bean中保存所选行的属性。从commandButton中删除该操作,并仅将其保留在确认对话框的按钮中
让我知道这是否有效
<p:commandButton value="Delete" ajax="false" onclick="PF('confirmation').show()" type="button">
<f:setPropertyActionListener value="#{tableRowVar}" target="#{bean.selectedUser}" />
</p:commandButton>