suivant est mon pic de tableau de données et je veux quand je supprime une ligne, la table de données rafraîchit. mais la ligne est supprimée de la base de données mais ne supprime pas de la table de données après cela. J'ai essayé les codes suivants mais ils n'ont pas pu m'aider.p: dataTable - rafraîchir datatable après suppression ligne
<h2>مشاهده اطلاعات پرسنل</h2>
<h:form id="f2" prependId="false">
<p:dataTable id="pdataTable" var="personel" value="#{personelMB.personelList}" rowKey="#{personelMB.personel_id}"
>
<f:facet name="header">
اطلاعات پرسنل
</f:facet>
<p:column>
<f:facet name="header">
شماره پرسنلی
</f:facet>
<h:outputText value="#{personel.personel_id}" />
<f:facet name="footer">
کدملی
</f:facet>
</p:column>
<p:column headerText="نام">
<h:outputText value="#{personel.pname}" />
</p:column>
<p:column headerText="نام خانوادگی">
<h:outputText value="#{personel.pfamily}" />
</p:column>
<p:column headerText="آدرس">
<h:outputText value="#{personel.paddress}" />
</p:column>
<p:column headerText="تلفن">
<h:outputText value="#{personel.pphone}" />
</p:column>
<p:column>
<f:facet name="حذف">
<h:outputText value="" />
</f:facet>
<p:commandButton icon="ui-icon-close" title="حذف"
actionListener="#{personelMB.deletePersonel(personel.personel_id)}" update="pdataTable"/>
</p:column>
<f:facet name="footer">
تعداد رکورد#{fn:length(personelMB.getPersonelList())} میباشد.
</f:facet>
</p:dataTable>
</h:form>
2.Deuxième essayer:
<p:commandButton icon="ui-icon-close" title="حذف"
actionListener="#{personelMB.deletePersonel(personel.personel_id)}" reRender="pdataTable"/>
</p:column>
3.Troisième essayer: personelBean.java
public void deletePersonel(int personel_id){
Personel personel=(Personel)personelservice.getPersonelId(personel_id);
getPersonelservice().deletePersonel(personel);
}
public String deleteAction(Personel personel) {
personelList.remove(personel);
return null;
}
fichier xhtml
<p:commandButton icon="ui-icon-close" title="حذف"
actionListener="#{personelMB.deletePersonel(personel.personel_id)}" action="#{personelMB.deleteAction(personel)}"/>
</p:column>
s'il vous plaît aidez-moi.
Vérifiez que votre bean est ViewScoped. –
J'ai été utilisé @SessionScoped. Je l'ai changé pour ViewScoped mais cela n'a pas fonctionné aussi. – samira
Etes-vous sûr que la méthode d'action est en cours d'exécution? Je veux dire, avez-vous débogué ou publié des traces de journaux pour voir que la méthode a effectivement été exécutée? Ce pourrait être un problème de Java au lieu de JSF/Primefaces. –