2012-08-06 128 views
1

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

請幫助我。

+0

檢查您的bean是否是ViewScoped。 – 2012-08-06 14:45:10

+0

我使用了@SessionScoped。我將其更改爲ViewScoped,但它不起作用。 – samira 2012-08-06 15:01:36

+0

你確定操作方法正在運行嗎?我的意思是,您是否調試過或發佈了日誌跟蹤,以確定該方法是否已被執行?這可能是Java問題而不是JSF/Primefaces。 – 2012-08-06 15:13:19

回答

5

而是阿賈克斯試圖這樣是錯誤的做出是真的。

actionListener="#{personelMB.deletePersonel(personel.personel_id)}" update="@form" ajax="true"/> 
+0

這是解決方案嗎? – j0k 2012-08-07 08:51:07

+1

@ j0k,是的,我忘了ajax =「true」。這個對我有用。 – samira 2012-08-07 08:53:32

+0

好的,不要忘了接受你自己的答案,然後;) – j0k 2012-08-07 08:54:01

0

使用更新的命令按鈕

+1

我之前使用過它,它也沒有工作。 – samira 2012-08-06 14:50:33

0

=「@形式」參數中有你

<p:commandButton update=":f2:pdataTable"></p:commandButton> 
+1

是的,我試過了。但它不能工作。 – samira 2012-08-06 19:29:40