2017-01-06 136 views
0

我的刪除按鈕將從數據庫中刪除條目,但不會從primefaces中的實際數據表中刪除條目。直到您使用過濾器更改或F5 /新會話刷新它。刪除行在更新後不反映在數據表中

我已經看過這個問題的各種其他答案,我會空白。我嘗試了更新,並使用oncomplete =「PF('datalistWidget')。filter()」等等。

使用primefaces 6.0和glassfish 4.1。任何幫助讚賞。 我大致按照教程http://www.oracle.com/technetwork/articles/java/java-primefaces-2191907.html,然後添加我自己的自定義。託管的bean和外觀等...都與那些帶有數據庫創建類的教程類似。我在玻璃魚日誌中沒有看到任何錯誤。

的DataTable

<p:dataTable id="datalist" value="#{chemicalChemicalController.items}" var="item" 
     selectionMode="single" selection="#{chemicalChemicalController.selected}" 
     paginator="true" 
     editable ="true" 
     rowKey="#{item.chemKey}" 
     rows="10" 
     widgetVar="datalistWidget" 
     rowsPerPageTemplate="10,20,30,40,50" 
     filteredValue="#{chemicalChemicalController.itemsFiltered}" 
     > 

刪除命令按鈕

<p:commandButton id="deleteButton" icon="ui-icon-trash" 
value="#{bundle.Delete}" actionListener="#{chemicalChemicalController.destroy}" 
update=":growl, datalist" disabled="#{empty chemicalChemicalController.selected}"/> 

控制器刪除命令

public void destroy() { 
    persist(PersistAction.DELETE, ResourceBundle.getBundle("/Bundle").getString("ChemicalChemicalDeleted")); 
    if (!JsfUtil.isValidationFailed()) { 
     selected = null; // Remove selection 
     items = null; // Invalidate list of items to trigger re-query. 

    } 
} 
+1

像答案狀態,你似乎無論是從列表中刪除項目或指示你完全從db加載列表 – Kukeltje

回答

0

從項目對象中刪除方法。

public void destroy(SelectEvent event) { 
    persist(PersistAction.DELETE, ResourceBundle.getBundle("/Bundle").getString("ChemicalChemicalDeleted")); 
    if (!JsfUtil.isValidationFailed()) { 
     selected = null; // Remove selection 
     items = null; // Invalidate list of items to trigger re-query. 

    } 

    RowObj rowObj = (RowObj) event.getObject();// here Row Object is your selected row item. 
    if(items != null) 
    { 
     //iterate items and delete matched with selected row object 
    } 
} 
相關問題