java - p :dataTable - refresh datatable after delete row

标签 java jsf jakarta-ee jsf-2 primefaces

以下是我的数据表图片,我希望当我删除一行时,数据表会刷新。但是行从数据库中删除但之后不会从数据表中删除。 enter image description here 我尝试遵循代码,但它们无法帮助我。

<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.第二次尝试:

<p:commandButton icon="ui-icon-close" title="حذف"
 actionListener="#{personelMB.deletePersonel(personel.personel_id)}" reRender="pdataTable"/>
                   </p:column>

3.第三次尝试: 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>

请帮助我。

最佳答案

而不是 ajax 是假的让它成为真。

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

关于java - p :dataTable - refresh datatable after delete row,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11829378/

相关文章:

java - JSF(view) + Spring MVC 糟糕的选择?即使在 JSF 成为正式的 EE 规范之后,还有任何替代品吗?

Java - 顺序异步执行

java - 多线程类加载可能吗?

java - 如何将 google 身份验证 token (在 iOS 中获得)传递到 google-app-engine Web servlet?

Java 服务器 - 多个客户端处理 - 使用线程是最佳选择吗?

java - 用于获取值数组的 Elasticsearch 查询

java - JBoss Seam 可以在使用登录页面后重定向用户的 "Last Visited Page"吗?

javascript - 在 p :selectOneMenu using JS 中选择选项

java - 如何使用 JPA 映射具有本地化产品名称的表?

java - 如何获取 <p :column> in a facelet using EL 的嵌套组件