java p:dataTable - 删除行后刷新数据表

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/11829378/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-31 06:32:40  来源:igfitidea点击:

p:dataTable - refresh datatable after delete row

javajsfjakarta-eejsf-2primefaces

提问by samira

following is my data table pic and i want when i delete a row, data table refreshes. but row deleted from DB but doesnot delete from data table after that. enter image description herei try following codes but they could not help me.

以下是我的数据表图片,我希望当我删除一行时,数据表会刷新。但是从数据库中删除了行,但之后不会从数据表中删除。 在此处输入图片说明我尝试以下代码,但他们无法帮助我。

<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 try:

2.第二次尝试:

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

3.third try: personelBean.java

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 file

.xhtml 文件

<p:commandButton icon="ui-icon-close" title="???"
                       actionListener="#{personelMB.deletePersonel(personel.personel_id)}" action="#{personelMB.deleteAction(personel)}"/>
   </p:column>

please help me.

请帮我。

回答by samira

Instead of ajax to be false made it true.

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

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

回答by Deniz

use update="@form" parameter on commandbutton

在命令按钮上使用 update="@form" 参数

回答by Nagaraj Am

Have You tried like this in

你试过这样吗

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