2017-01-06 5 views
0

Моя кнопка удаления удалит запись из базы данных, но не из фактического datatable в файлах. Пока вы не обновите его с помощью изменения фильтра или F5/нового сеанса.Удаление строки, не отраженной в datatable после обновления

Я рассмотрел различные ответы на этот вопрос и прихожу к вам. Я попытался возиться с обновлением и использовать oncomplete = «PF (« datalistWidget »). Filter()» среди прочего.

Использование перформансов 6.0 и стеклянной рыбы 4.1. Любая помощь оценивается. Я грубо следовал за учебником по адресу http://www.oracle.com/technetwork/articles/java/java-primefaces-2191907.html, а затем добавил по моей собственной настройке. Управляемые бобы и фасад и т. Д. Все они похожи на этот учебник с созданными базами данных. Я не видел никаких ошибок в журнале о стекле.

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}" 
     > 

Удалить Command Button

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

Контроллер Delete Command

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 
    } 
} 
Смежные вопросы