好的,我做了一些搜索,我尝试了很多对我来说似乎不错但仍然不起作用的方法,我希望在用户单击对话框 2 中的确认后从表“用户”中删除一行
所以我喜欢这个
班主任我们
@ManagedBean
@ViewScoped
public class afficherUs implements Serializable {
private String idU;
private List<Compte> comptes=new ArrayList<Compte>();
private Compte selectedc = new Compte();
private DataModel tdata ;
public afficherUs() {
}
// getter and setter
public void delete(){ <!-- Method to remove -->
System.out.println("in delete");
comptes.remove(selectedc);
tdata.setWrappedData(comptes);
}
public void editU(){
Session se=geoUtil.getSessionFactory().getCurrentSession();
Transaction tr=se.beginTransaction();
Compte cp=new Compte();
cp=selectedc;
se.merge(cp);
tr.commit();
int i=0;
boolean ok=false;
while(i<comptes.size() && true==false){
if(comptes.get(i).getId().equals(cp.getId())){
ok=true;
comptes.remove(i);
comptes.add(i, cp);
}
i++;
}
tdata.setWrappedData(comptes);
}
}
和对话框2:
<!-- Suppression Form -->
<h:form id="supprimer">
<p:dialog header="Suppression" widgetVar="dialog2" resizable="false"
width="300" showEffect="explode" hideEffect="explode">
<h:panelGrid id="dis" columns="2" cellpadding="4">
<h:outputText value="Valider Suppression" style="color:#930303;" ></h:outputText><h:outputText value="#{afficherUs.selectedc.id}" ></h:outputText>
<p:commandButton value="Supprimer" action="#{afficherUs.delete}" update=":f:form:ila" oncomplete="dialog2.hide()" ajax="true"></p:commandButton><p:commandButton value="Annuler" oncomplete="dialog2.hide()"></p:commandButton>
</h:panelGrid>
</p:dialog>
</h:form>
我在 cammandbutton 上调用方法单击了我的 DataTable
<p:column style="width:4%">
<p:commandButton id="supprimerButton" update=":f:form:supprimer:dis" oncomplete="dialog2.show()" icon="ui-icon-trash" title="View">
<f:setPropertyActionListener value="#{cmd}" target="#{afficherUs.selectedc}" />
</p:commandButton>
</p:column>