Search code examples
javajsfrichfaces

RICH:dataTable - refresh page after delete row


I have rich datatable with delete button:

enter image description here

When I delete the row, row is really deleted in database, but still remains in dataTable. It dissapear after reload page or reload dataTable.

part of dataTable code:

<rich:extendedDataTable 
  value="#{myBdeCheck.dataListBde}"
  var="bdeItem">

 <rich:column width="60px">
  <f:facet name="header">
     <h:outputText value="Kusy" />
  </f:facet>
  <h:outputText value="#{bdeItem.prodPcs}" rendered="#{!myBdeCheck.editMode}"/>
  <h:inputText value="#{bdeItem.prodPcs}" rendered="#{myBdeCheck.editMode}"/>
 </rich:column>

 <rich:column width="50px">
  <h:commandLink action="#{myBdeCheck.deleteBde}">
    <h:graphicImage value="/images/icons/delete.png" alt="edit"/>
    <a4j:param value="#{it.index}" assignTo="#{myBdeCheck.currentIndexDetail}" />
    <f:setPropertyActionListener target="#{myBdeCheck.BDEItem}" value="#{bdeItem}" />
  </h:commandLink>
 </rich:column>
</rich:extendedDataTable>

and part of myBdeCheck bean:

private int currentIndexDetail; // with getters, setters
private BDE BDEItem;

public void deleteBde()
{
  try 
  { 
    DaoCrud.delete(BDEItem, 'R');
  } 
  catch{.....}
}

How can I make dataTable to refresh automatically after click the delete button?


Solution

  • You need to rerender the datatable after action is performed

    <h:commandLink action="#{myBdeCheck.deleteBde}" reRender="idOfYourDataTable">
    

    Check this for more info..