好的我做了一些搜索,我尝试了许多对我来说似乎不错的方法,但仍然无法工作, 用户在dialog2
中单击确认后,我希望从表'user'中删除一行所以我喜欢这个
class afficherUs
@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);
}
}
和dialog2:
<!-- 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>
答案 0 :(得分:0)
首先:创建具有属性selectionMode selection rowKey
的表,其中selection
- 您保存所选行的bean的属性。
例如:
<p:dataTable id="ila" var="cmd" value="#{afficherUs.tdata}" paginator="true"
rowkey="#{cmd.id}" rows="6" widgetVar="ChefTable" selection="#{afficherUs.selected}">
第二个:创建按钮,它将显示删除对话框并更新其中的信息。 例如:
<p:commandButton id="delButton" value="Delete" update=":f:form:supprimer"
action="dialog2.show()"/>
第三步:使用按钮编写对话框,更新表格中的信息。 例如:
<p:commandButton value="Yes" actionListener="#{afficherUs.delete}"
update=":f:form:ila" oncomplete="delApp.hide()"/>
第四:在您的managedbean中从您的ArrayList中删除selected
例如:
public void delete(){
System.out.println("in delete");
comptes.remove(selected);
//Some code here
}