带有确认框的datagrid内的Primefaces 5 Delete按钮单击确认框的yes将参数值传递给bean

带有确认框的datagrid内的Primefaces 5 Delete按钮单击确认框的yes将参数值传递给bean,primefaces,Primefaces,我们使用的是PrimeFaces5 我们有一个用于搜索结果的数据网格。在datagrid中,每行有一个删除按钮。单击delete按钮后,当用户单击确认对话框的yes按钮时,将显示一个确认框,然后应调用bean的deleteUser方法,并应删除参数id为“testUserId”的用户。问题是发送到bean的“testUserId”的值始终是datagrid最后一行的userId的值。如何将单击delete按钮的当前行的“testUserId”值传递给bean方法? 下面是代码片段 Xhtml:-

我们使用的是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>