在primefaces上更新confirmDialog
这是我的场景,我有一个填充了客户机的dataTable,它有一列,其中有一个用于删除行的按钮。当我点击按钮时,它会显示confirmDialog,这个confirmDialog有一个“message”属性绑定到支持bean上的客户机名称 我尝试了两种方法用所选行的名称更新confirmDialog:在primefaces上更新confirmDialog,primefaces,Primefaces,这是我的场景,我有一个填充了客户机的dataTable,它有一列,其中有一个用于删除行的按钮。当我点击按钮时,它会显示confirmDialog,这个confirmDialog有一个“message”属性绑定到支持bean上的客户机名称 我尝试了两种方法用所选行的名称更新confirmDialog: 当我选择更新confirmDialog的行时,问题是有时更新的时间比单击delete按钮所需的时间要长,这意味着更新只在confirmDialog已经打开并且primefaces上有一个bug时发生
我认为只有在选中行时才显示delete按钮,这样第二种方法才能工作。但我不知道怎么做 大多数情况下,我这样做的方式是分两步进行编辑或删除。当有人单击“删除”按钮时,您确切地知道该行来自哪个行,并保存该信息。在对话框中,您只需调用delete方法并删除之前保存的对象 让我给你举一个关于汽车的简短例子。首先,在表中调用一个方法将当前选定的对象保存到“currentCar”中,当然还可以打开对话框
<p:commandButton icon="ui-icon ui-icon-close"
action="#{carBean.prepareRemoveCar(var)}"
oncomplete="dlg_confirmDeleteCar.show();" />
如果采用这种方法,则表中当前选定的行对于删除并不重要。您可以单击任何“删除”按钮,并将始终删除该行/对象,而不考虑选择
当然,您也可以将其用于其他情况,例如更新实例或创建新实例(在这种情况下,您可以使用“prepareMethod”设置currentCar=new Car();
)
public class CarBean implements Serializable {
...
private Car currentCar;
...
public void prepareDeleteCar(Car currentSelectedCar){
currentCar = currentSelectedCar;
}
public void deleteCar(){
//delete currentCar
}
...
}