以下是我的数据表图片,我想当我删除一行,数据表刷新。但是从数据库中删除的行却没有从数据表中删除。 我尝试下面的代码,但他们不能帮助我。p:dataTable - 删除行后刷新数据表
<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.second尝试:
<p:commandButton icon="ui-icon-close" title="حذف"
actionListener="#{personelMB.deletePersonel(personel.personel_id)}" reRender="pdataTable"/>
</p:column>
3.third尝试: 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;
}
XHTML文件
<p:commandButton icon="ui-icon-close" title="حذف"
actionListener="#{personelMB.deletePersonel(personel.personel_id)}" action="#{personelMB.deleteAction(personel)}"/>
</p:column>
请帮助我。
检查您的bean是否是ViewScoped。 – 2012-08-06 14:45:10
我使用了@SessionScoped。我将其更改为ViewScoped,但它不起作用。 – samira 2012-08-06 15:01:36
你确定操作方法正在运行吗?我的意思是,您是否调试过或发布了日志跟踪,以确定该方法是否已被执行?这可能是Java问题而不是JSF/Primefaces。 – 2012-08-06 15:13:19