以下是我的數據表圖片,我想當我刪除一行,數據表刷新。但是從數據庫中刪除的行卻沒有從數據表中刪除。 我嘗試下面的代碼,但他們不能幫助我。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